Skip to content

打开文档

ComPDFKit PDF SDK for Flutter 允许您使用 CPDFReaderWidgetComPDFKit.openDocument() 方法打开文档。本文是一个分步指南,帮助您快速入门。

如果您尝试打开一个存储为资源的 PDF 文件,首先需要将该文件复制到临时目录。完成后,您就可以打开它了。

以下是一个帮助函数,用于将文件复制到临时目录:

dart
Future<File> extractAsset(BuildContext context, String assetPath,
    {bool shouldOverwrite = true, String prefix = ''}) async {
  final bytes = await DefaultAssetBundle.of(context).load(assetPath);
  final list = bytes.buffer.asUint8List();

  final tempDir = await ComPDFKit.getTemporaryDirectory();
  final tempDocumentPath = '${tempDir.path}/$prefix$assetPath';
  final file = File(tempDocumentPath);

  if (shouldOverwrite || !file.existsSync()) {
    await file.create(recursive: true);
    file.writeAsBytesSync(list);
  }
  return file;
}

以下是如何使用 CPDFReaderWidget 打开 PDF 文档:

dart
File document = await extractAsset(context, _documentPath, shouldOverwrite: false);
...
Scaffold(
  resizeToAvoidBottomInset: false,
  appBar: AppBar(),
  body: CPDFReaderWidget(
    document: document.path,
    configuration: CPDFConfiguration(),
    onCreated: (controller) {

    },))
...

以下是如何使用全局 openDocument() 方法打开 PDF 文档:

dart
File document = await extractAsset(context, _documentPath);

ComPDFKit.openDocument(document.path, password: '', configuration: CPDFConfiguration());