function InspectPdfAMetadata: TPdfAMetadataReport;
| Result | TPdfAMetadataReport contenant la disponibilité XMP, le texte d’erreur d’analyse, les champs en divergence et huit comparaisons par champ |
La méthode lit Title, Author, Subject, Keywords, Creator, Producer, CreationDate et ModDate via PDFium, de sorte que les chaînes PDFDocEncoding et UTF-16 utilisent le même décodage Unicode que le document en cours
L’inspection brute du dictionnaire consigne l’existence indépendante de chaque clé Info par rapport à sa valeur, de sorte qu’une chaîne explicitement vide n’est pas traitée comme une clé absente
Title et Subject exigent une valeur rdf:Alt étiquetée x-default ; Author exige un rdf:Seq contenant exactement une valeur ; les autres correspondances exigent une propriété simple trouvée par URI d’espace de noms et nom local
Les valeurs texte se comparent par points de code Unicode exacts ; les dates se comparent comme composants locaux lorsqu’aucune des deux valeurs n’a de fuseau horaire, ou comme instants UTC lorsque les deux valeurs portent un fuseau horaire
TPdfAMetadataState distingue les états non requis, équivalent, XMP absent, type RDF erroné, valeur divergente, date Info invalide et date XMP invalide
La méthode est en lecture seule, exige un document actif et ne modifie ni l’état de PDFium ni celui de la source
var Report: TPdfAMetadataReport;
Report := Pdf1.InspectPdfAMetadata;
if Report.HasXmpPacket and not Report.IsEquivalent then
ShowMessage(IntToStr(Length(Report.Comparisons)) + ' fields inspected');