如何使用Flutter pdf包展示assets文件夹中的PDF文件
使用pdf包加载assets中的PDF文件
步骤1:配置pubspec.yaml
首先确保在pubspec.yaml中正确声明assets路径,让Flutter能访问到目标PDF文件:
flutter: assets: - assets/pdfs/pdf_file.pdf
注意yaml文件的缩进规则,assets下的路径需缩进2个空格。
步骤2:加载并解析PDF文件
用Flutter的rootBundle读取assets中的文件字节数据,再通过pdf包的loadFromBytes方法解析为可操作的pw.Document对象:
import 'package:flutter/services.dart'; import 'package:pdf/pdf.dart'; import 'package:pdf/widgets.dart' as pw; Future<pw.Document> loadAssetPdf() async { // 从assets读取PDF字节数据 final assetData = await rootBundle.load('assets/pdfs/pdf_file.pdf'); final pdfBytes = assetData.buffer.asUint8List(); // 解析为pdf包的Document实例 return pw.Document().loadFromBytes(pdfBytes); }
编辑加载后的PDF示例
如果需要对加载好的PDF进行修改(比如新增页面),直接在返回的pw.Document对象上操作即可:
void editLoadedPdf() async { final pdf = await loadAssetPdf(); // 添加新页面 pdf.addPage( pw.Page( pageFormat: PdfPageFormat.a4, build: (context) => pw.Center( child: pw.Text('新增内容'), ), ), ); // 后续可将修改后的PDF保存或导出 }
注意事项
- 确认assets文件夹的实际路径与配置一致,避免因路径错误导致加载失败
- 所有assets加载操作都是异步的,必须使用
async/await处理 - pdf包主打PDF生成与编辑,若需展示PDF内容,可搭配PDF渲染类库实现
内容的提问来源于stack exchange,提问作者Buddhika
相关产品推荐
相关产品推荐

