导入和导出
XFDF 是一种类似 XML 的标准,来自 Adobe XFDF,用于编码注释和表单字段值。它与 Adobe Acrobat 以及其他一些第三方框架兼容。
ComPDFKit Flutter SDK 支持读取和写入 XFDF 格式来导入和导出注释。以下指南展示了如何使用 XFDF 格式导入和导出注释。
导入注释
您可以通过调用 importAnnotations(xfdfFile)
方法将 XFDF 文件导入到文档中。这将允许您将 XFDF 格式的注释数据应用到现有的 PDF 文档。
xfdfFile:指定要导入的 XFDF 文件路径。
在 Android 平台上,xfdfFile 可以是:
- 文件 URI(例如,content:// 格式)
- 文件路径(如 /storage/emulated/0/Download/annotations.xfdf)
- 位于 assets 目录下的文件
示例代码:
使用 CPDFReaderWidget
:
dart
CPDFReaderWidgetController? _controller;
// 初始化 CPDFReaderWidget,并在 onCreated 回调中获取 controller
CPDFReaderWidget(
document: documentPath,
configuration: CPDFConfiguration(),
onCreated: (controller) {
setState(() {
this._controller = controller;
});
},
)
// 导入注释
bool result = await _controller.document.importAnnotations(xfdfFile);
使用CPDFDocument
:
dart
// 创建并打开文档
CPDFDocument document = await CPDFDocument.createInstance();
var error = await document.open(pdfFilePath);
if (error == CPDFDocumentError.success) {
// 导入注释
bool result = await document.importAnnotations(xfdfFile);
}
导出注释
您可以通过调用 exportAnnotations()
方法将当前文档中的注释导出为 XFDF 格式文件。这对于将注释数据保存为文件或与其他系统共享注释数据非常有用。
- 此方法不需要路径参数。系统会自动生成并返回导出的 XFDF 文件路径。
示例代码:
使用CPDFReaderWidget
:
dart
CPDFReaderWidgetController? _controller;
// 初始化 CPDFReaderWidget,并在 onCreated 回调中获取 controller
CPDFReaderWidget(
document: documentPath,
configuration: CPDFConfiguration(),
onCreated: (controller) {
setState(() {
this._controller = controller;
});
},
)
// 导出注释
String xfdfFilePath = await _controller.document.exportAnnotations();
使用CPDFDocument
:
dart
// 创建并打开文档
CPDFDocument document = await CPDFDocument.createInstance();
CPDFDocumentError error = await document.open(pdfFilePath);
if (error == CPDFDocumentError.success) {
// 导出注释
String xfdfFilePath = await document.exportAnnotations();
}