Skip to content

注释扁平化

注释扁平化是指将可编辑的注释转换为不可编辑、不可修改的静态图像或纯文本形式。当对注释进行扁平化时,整个文档所有可编辑元素(包含注释和表单)都将执行扁平化,所以注释扁平化又称为文档扁平化。

以下是注释扁平化的示例代码:

使用CPDFReaderWidget

dart
CPDFReaderWidgetController? _controller;
// 初始化 CPDFReaderWidget,并在 onCreated 回调中获取 controller
CPDFReaderWidget(
  document: documentPath,
  configuration: CPDFConfiguration(),
  onCreated: (controller) {
    setState(() {
      this._controller = controller;
    });
  },
)
  
final savePath = 'file:///storage/emulated/0/Download/flatten.pdf';
// or use a Uri on Android:
// final savePath = await ComPDFKit.createUri('flatten_test.pdf', 'compdfkit', 'application/pdf');
final fontSubset = true;
final result = await _controller.document.flattenAllPages(savePath, fontSubset);

使用CPDFDocument:

dart
// 创建并打开文档
CPDFDocument document = await CPDFDocument.createInstance();
var error = await document.open(pdfFilePath);
if (error == CPDFDocumentError.success) {
	final savePath = 'file:///storage/emulated/0/Download/flatten.pdf';
	// or use a Uri on Android:
	// final savePath = await ComPDFKit.createUri('flatten_test.pdf', 'compdfkit', 'application/pdf');
	final fontSubset = true;
	final result = await _controller.document.flattenAllPages(savePath, fontSubset);
}

什么是文档扁平化?

文档扁平化是指将一个包含注释、表单字段或图层的 PDF 文档中的这些可编辑元素转换为不可编辑、不可修改的静态图像或纯文本形式的过程。这个过程的目的是将文档的最终状态锁定,使其不再包含可编辑的元素。

文档扁平化通常在以下情境下应用:

  1. 保护文档内容: 扁平化可用于保护文档内容,确保文档在传播或分享过程中不被更改。这对于确保文档的完整性和保密性非常重要。
  2. 表单提交: 在表单处理中,扁平化可以用于将用户填写的表单字段和注释转换为静态图像,以便方便传输、存档或打印,同时防止在后续阶段对表单内容的修改。
  3. 兼容性和显示: 一些 PDF 阅读器或浏览器对于包含许多注释或图层的 PDF 文档的显示和交互可能存在问题。文档扁平化可以帮助解决这些兼容性问题,提高文档在各种环境中的可视化效果。
  4. 减小文件大小: 扁平化后的文档通常会减小文件大小,因为可编辑元素被转换为静态图像或文本,不再需要保存编辑信息的附加数据。