PDF 2.0 一致性支持
HotPDF 可以通过 TPDFVersType 中仅供追加的 pdf20 值写入并重新加载 PDF 2.0 文档
PDF/A-4 配置文件
PDFACompliance | 配置文件 | 生成的标识 |
|---|---|---|
'4' | PDF/A-4 基础 | part=4、rev=2020,无一致性字段 |
'4E' | PDF/A-4e 工程 | part=4、rev=2020、conformance=E |
'4F' | PDF/A-4f 关联文件 | part=4、rev=2020、conformance=F |
所有三种配置文件都强制使用 PDF 2.0 头,要求正常的 PDF/A 输出意图和元数据检查,并禁止加密
AddPDFAssociatedFile 接受 PDF/A-3、PDF/A-4e 和 PDF/A-4f 下的关联文件,而 AddPDFA3AssociatedFile 仍然可用以保持源兼容性
PDF/A-4e 为工程文档启用现有的 3D 和 RichMedia 批注路径
PDF/UA-2 工作流
PDF.PDFUACompliance := True;
PDF.PDFUAPart := 2;
PDF.Lang := 'en-US';
PDF.BeginDoc;
Root := PDF.AddStructureElement('Document', nil);
PDF.AddStructureElementNS('WidgetGroup',
'https://example.com/ns/widgets', Root);
PDF.EndDoc;
Part 2 强制使用 PDF 2.0 并输出 pdfuaid:part=2 加上 pdfuaid:rev=2024
RegisterStructureNamespace 创建或重用一个间接的 /Type /Namespace 字典,并将其列入 StructTreeRoot /Namespaces
AddStructureElementNS 通过结构元素的 /NS 条目附加已注册的字典,并允许在该命名空间中使用自定义角色
在 EndDoc 时的验证
- 结构根必须恰好包含一个顶层
Document元素 - 每一个命名空间字典必须是间接的,类型为
Namespace,并带有一个唯一的非空 URI - 每一个结构元素
/NS引用必须能解析到由根/Namespaces数组列出的字典 - 一个无命名空间的角色必须是 PDF 2.0 标准角色,或能通过
RoleMap解析
PDF 2.0 结构角色
带类型的枚举新增了 DocumentFragment、Aside、Title、FENote、Sub、Em、Strong 和 Artifact
字符串重载还接受开放式的 Hn 形式,包括 H7 及更高版本