function InspectPdfAMetadata: TPdfAMetadataReport;
| Result | TPdfAMetadataReport med XMP-tilgængelighed, parsefejltekst, mismatch-felter og otte pr. felt foretagne sammenligninger |
Metoden læser Title, Author, Subject, Keywords, Creator, Producer, CreationDate og ModDate gennem PDFium, så PDFDocEncoding- og UTF-16-strenge bruger samme Unicode-dekodning som det levende dokument
Rå dictionary-inspektion registrerer, om hver Info-nøgle findes uafhængigt af dens værdi, så en eksplicit tom streng ikke behandles som en fraværende nøgle
Title og Subject kræver en rdf:Alt-værdi tagget x-default; Author kræver en rdf:Seq med præcis én værdi; de andre mappings kræver en simpel egenskab fundet via namespace-URI og lokalt navn
Tekstværdier sammenlignes efter eksakte Unicode-kodepunkter; datoer sammenlignes som lokale komponenter, når ingen af værdierne har en tidszone, og som UTC-øjeblikke, når begge værdier bærer tidszoner
TPdfAMetadataState skelner mellem tilstandene ikke-påkrævet, ækvivalent, manglende XMP, forkert RDF-type, værdiafvigelse, ugyldig Info-dato og ugyldig XMP-dato
Metoden er skrivebeskyttet, kræver et aktivt dokument og ændrer ikke PDFium- eller kildetilstand
var Report: TPdfAMetadataReport;
Report := Pdf1.InspectPdfAMetadata;
if Report.HasXmpPacket and not Report.IsEquivalent then
ShowMessage(IntToStr(Length(Report.Comparisons)) + ' fields inspected');