function InspectPdfAMetadata: TPdfAMetadataReport;
| Result | TPdfAMetadataReport obsahujúci dostupnosť XMP, text chyby parsovania, polia s nezhodou a osem porovnaní pre jednotlivé polia |
Metóda číta Title, Author, Subject, Keywords, Creator, Producer, CreationDate a ModDate cez PDFium, takže reťazce PDFDocEncoding a UTF-16 používajú rovnaké Unicode dekódovanie ako živý dokument
Surová inšpekcia slovníka zaznamenáva, či každý kľúč Info existuje nezávisle od svojej hodnoty, takže explicitne prázdny reťazec nie je považovaný za neprítomný kľúč
Title a Subject vyžadujú hodnotu rdf:Alt označenú x-default; Author vyžaduje rdf:Seq obsahujúci presne jednu hodnotu; ostatné mapovania vyžadujú jednoduchú vlastnosť nájdenú podľa URI namespace a lokálneho názvu
Textové hodnoty sa porovnávajú po presných Unicode code pointoch; dátumy sa porovnávajú ako lokálne zložky, keď žiadna hodnota nemá časové pásmo, alebo ako UTC okamihy, keď časové pásmo nesú obe hodnoty
TPdfAMetadataState rozlišuje stavy nepovinné, ekvivalentné, chýbajúce XMP, nesprávny RDF typ, nezhoda hodnoty, neplatný dátum Info a neplatný dátum XMP
Metóda je len na čítanie, vyžaduje aktívny dokument a nemodifikuje stav PDFium ani zdroja
var Report: TPdfAMetadataReport;
Report := Pdf1.InspectPdfAMetadata;
if Report.HasXmpPacket and not Report.IsEquivalent then
ShowMessage(IntToStr(Length(Report.Comparisons)) + ' fields inspected');