function InspectPdfAMetadata: TPdfAMetadataReport;
| Result | TPdfAMetadataReport,包含 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');