PDFium Delphi Component 文件

InspectPdfAMetadata 方法

组件: TPdf  ·  单元: PDFium
报告活动文档精确的 ISO 19005-1 Info 到 XMP 等价性

语法

function InspectPdfAMetadata: TPdfAMetadataReport;

ResultTPdfAMetadataReport,包含 XMP 可用性、解析错误文本、不匹配字段以及八项逐字段比较

说明

该方法通过 PDFium 读取 Title、Author、Subject、Keywords、Creator、Producer、CreationDate 和 ModDate,使 PDFDocEncoding 与 UTF-16 字符串都使用与活动文档相同的 Unicode 解码

原始字典检查独立于值记录每个 Info 键是否存在,因此显式的空字符串不会被当作缺失的键

Title 和 Subject 要求一个标记为 x-default 的 rdf:Alt 值;Author 要求一个恰好包含一个值的 rdf:Seq;其他映射要求通过命名空间 URI 和本地名称找到的简单属性

文本值按精确的 Unicode 码位比较;两个值都没有时区时按本地分量比较日期,两个值都带时区时按 UTC 时刻比较

TPdfAMetadataState 区分无需比较、等价、缺少 XMP、RDF 类型错误、值不匹配、Info 日期无效和 XMP 日期无效等状态

该方法为只读,要求存在活动文档,且不会修改 PDFium 或源状态

示例

var Report: TPdfAMetadataReport;
Report := Pdf1.InspectPdfAMetadata;
if Report.HasXmpPacket and not Report.IsEquivalent then
  ShowMessage(IntToStr(Length(Report.Comparisons)) + ' fields inspected');

参见

NormalizePdfAMetadata, ValidatePdfA, ReadXmpPacket, FPdfXmp