function InspectPdfAMetadata: TPdfAMetadataReport;
| Result | TPdfAMetadataReport con disponibilità XMP, testo dell'errore di analisi, campi in disaccordo e otto confronti per campo |
Il metodo legge Title, Author, Subject, Keywords, Creator, Producer, CreationDate e ModDate tramite PDFium, così le stringhe PDFDocEncoding e UTF-16 usano la stessa decodifica Unicode del documento attivo
L'ispezione del dizionario grezzo registra se ogni chiave Info esiste indipendentemente dal suo valore, così una stringa esplicitamente vuota non viene trattata come chiave assente
Title e Subject richiedono un valore rdf:Alt con tag x-default; Author richiede un rdf:Seq contenente esattamente un valore; le altre mappature richiedono una proprietà semplice trovata tramite URI di namespace e nome locale
I valori di testo vengono confrontati per punti di codice Unicode esatti; le date vengono confrontate come componenti locali quando nessuno dei due valori ha un fuso orario, oppure come istanti UTC quando entrambi i valori ne sono provvisti
TPdfAMetadataState distingue gli stati non richiesto, equivalente, XMP mancante, tipo RDF errato, valore in disaccordo, data Info non valida e data XMP non valida
Il metodo è di sola lettura, richiede un documento attivo e non modifica lo stato di PDFium né quello della sorgente
var Report: TPdfAMetadataReport;
Report := Pdf1.InspectPdfAMetadata;
if Report.HasXmpPacket and not Report.IsEquivalent then
ShowMessage(IntToStr(Length(Report.Comparisons)) + ' fields inspected');