PDFium Delphi Component 文件

ImportXFDF 方法

组件: TPdf  ·  单元: PDFium
读取 XFDF(ISO 19444-1)文档,把其中的表单字段值和注释应用到已加载的 PDF,在对应页面上创建注释,并把字段值写入相应的部件注释

语法

function ImportXFDF(const FileName: string): Integer; overload;
function ImportXFDF(Stream: TStream): Integer; overload;

说明

ImportXFDF 解析 XFDF XML 文档,并将其 <fields><annots> 部分应用到 当前加载的 PDF

对每个 <field> 元素,其限定名(点分层次名)会与文档中的 部件注释进行匹配,值会写入该字段的 /V 条目。对复选框和 单选按钮字段,提供的导出值用于选中匹配的开启态外观,使字段呈现为 已勾选

显式为空的 <value> 会清空匹配的字段,而省略值则保持字段不变;深层嵌套的点分字段名保留其完整层次

对每个注释元素,会在 page 属性(从零开始)指示的页面上 创建新注释。创建之后,导入器会根据相应的 XFDF 属性填充 Contents、Author (标题)、Name(NM)、Subject、ModificationDate、CreationDate、 Icon 以及注释标志

返回已处理的字段与注释总数

注释导入会应用 RGB 颜色和内部颜色,保留显式为空的文本字段,以独立于进程区域设置的方式解析十进制坐标,并从 coords 属性还原每个标记四边形

扫描器接受带命名空间前缀的元素和属性、混合的文本与 CDATA 节点、XML 实体引用,以及对空白敏感的字段或注释内容;无效的数字 Unicode 标量引用会拒绝该 XFDF 输入

省略注释的 contents 元素会让新注释不带内容,而显式的空元素则写入空值

每个注释都必须带有 rect 属性:如果 缺失,该注释会被跳过,而不是以 零尺寸矩形创建

解析由手写的 XML 扫描器完成,而非 完整的 XML DOM,因此 ImportXFDF 不会引入 XML DOM 依赖

备注

示例

// 从 .xfdf 文件导入字段值和注释
Imported := Pdf1.ImportXFDF('C:\Data\form.xfdf');
Pdf1.SaveAs('C:\Data\form_filled.pdf');

参见

ExportXFDF, CreateAnnotation, Annotation, FormFieldInfo