function InspectPdfAMetadata: TPdfAMetadataReport;
| Result | TPdfAMetadataReport obsahující dostupnost XMP, text chyby parsování, pole neshod a osm porovnání po jednotlivých polích |
Metoda čte Title, Author, Subject, Keywords, Creator, Producer, CreationDate a ModDate přes PDFium, takže řetězce PDFDocEncoding a UTF-16 používají stejné Unicode dekódování jako živý dokument
Surová inspekce slovníku zaznamenává, zda každý klíč Info existuje nezávisle na své hodnotě, takže explicitně prázdný řetězec se nebere jako chybějící klíč
Title a Subject vyžadují hodnotu rdf:Alt označenou x-default; Author vyžaduje rdf:Seq obsahující právě jednu hodnotu; ostatní mapování vyžadují jednoduchou property nalezenou podle namespace URI a lokálního názvu
Textové hodnoty se porovnávají podle přesných Unicode kódových bodů; data se porovnávají jako lokální složky, když ani jedna hodnota nemá časovou zónu, nebo jako okamžiky UTC, když časovou zónu nesou obě
TPdfAMetadataState rozlišuje stavy nenutné, ekvivalentní, chybějící XMP, špatný RDF typ, neshoda hodnot, neplatné Info datum a neplatné XMP datum
Metoda je jen ke čtení, vyžaduje aktivní dokument a nemění stav PDFium ani zdroje
var Report: TPdfAMetadataReport;
Report := Pdf1.InspectPdfAMetadata;
if Report.HasXmpPacket and not Report.IsEquivalent then
ShowMessage(IntToStr(Length(Report.Comparisons)) + ' fields inspected');