function InspectPdfAMetadata: TPdfAMetadataReport;
| Result | XMP の可用性、解析エラーテキスト、不一致フィールド、および 8 項目のフィールドごとの比較を含む TPdfAMetadataReport |
このメソッドは Title、Author、Subject、Keywords、Creator、Producer、CreationDate、ModDate を PDFium 経由で読み取ります。そのため PDFDocEncoding と UTF-16 の文字列は、ライブのドキュメントと同じ Unicode デコードを使用します
生のディクショナリ検査は、各 Info キーの存在をその値とは独立に記録します。そのため明示的に空の文字列は、存在しないキーとして扱われません
Title と Subject は x-default タグ付きの rdf:Alt 値を要求し、Author はちょうど 1 つの値を含む 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');