You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 17:07:06