function InspectPdfAMetadata: TPdfAMetadataReport;
| Result | TPdfAMetadataReport z razpoložljivostjo XMP, besedilom napake razčlenjevanja, neujemajočimi polji in osmimi primerjavami na posamezno polje |
Metoda prebere Title, Author, Subject, Keywords, Creator, Producer, CreationDate in ModDate prek PDFiuma, tako da nizi PDFDocEncoding in UTF-16 uporabljajo isto dekodiranje Unicode kot živi dokument
Surovi pregled slovarja zabeleži, ali vsak ključ Info obstaja neodvisno od svoje vrednosti, tako da izrecno prazen niz ni obravnavan kot manjkajoči ključ
Title in Subject zahtevata vrednost rdf:Alt z oznako x-default; Author zahteva rdf:Seq z natanko eno vrednostjo; ostale preslikave zahtevajo preprosto lastnost, najdeno po URI-ju imenskega prostora in lokalnem imenu
Besedilne vrednosti se primerjajo po točnih kodnih točkah Unicode; datumi se primerjajo kot lokalne komponente, ko nobena vrednost nima časovnega pasu, ali kot trenutki UTC, ko jo nosita obe vrednosti
TPdfAMetadataState ločuje stanja nič zahtevanega, enakovredno, manjkajoč XMP, napačna vrsta RDF, neujemanje vrednosti, neveljaven datum Info in neveljaven datum XMP
Metoda je samo za branje, zahteva dejavni dokument in ne spreminja stanja PDFiuma ali vira
var Report: TPdfAMetadataReport;
Report := Pdf1.InspectPdfAMetadata;
if Report.HasXmpPacket and not Report.IsEquivalent then
ShowMessage(IntToStr(Length(Report.Comparisons)) + ' fields inspected');