function InspectPdfAMetadata: TPdfAMetadataReport;
| Result | TPdfAMetadataReport met XMP-beschikbaarheid, parsetfouttekst, mismatch-velden en acht vergelijkingen per veld |
De methode leest Title, Author, Subject, Keywords, Creator, Producer, CreationDate en ModDate via PDFium, zodat PDFDocEncoding- en UTF-16-strings dezelfde Unicode-decodering gebruiken als het live document
Ruwe dictionary-inspectie registreert of elke Info-sleutel bestaat, onafhankelijk van zijn waarde, zodat een expliciet lege string niet als afwezige sleutel wordt behandeld
Title en Subject vereisen een rdf:Alt-waarde getagd als x-default; Author vereist een rdf:Seq met precies één waarde; de andere mappings vereisen een simpele property die via namespace-URI en lokale naam wordt gevonden
Tekstwaarden vergelijken op exacte Unicode-codepoints; datums vergelijken als lokale componenten wanneer geen van beide waarden een timezone heeft, en als UTC-momenten wanneer beide waarden timezones dragen
TPdfAMetadataState onderscheidt de statussen niet-verplicht, equivalent, XMP ontbreekt, verkeerd RDF-type, waarde-mismatch, ongeldige Info-datum en ongeldige XMP-datum
De methode is read-only, vereist een actief document en wijzigt de PDFium- of bronstatus niet
var Report: TPdfAMetadataReport;
Report := Pdf1.InspectPdfAMetadata;
if Report.HasXmpPacket and not Report.IsEquivalent then
ShowMessage(IntToStr(Length(Report.Comparisons)) + ' fields inspected');