function InspectPdfAMetadata: TPdfAMetadataReport;
| Result | TPdfAMetadataReport que contiene la disponibilidad de XMP, el texto del error de análisis, los campos de discrepancia y ocho comparaciones por campo |
El método lee Title, Author, Subject, Keywords, Creator, Producer, CreationDate y ModDate a través de PDFium, de modo que las cadenas PDFDocEncoding y UTF-16 usan la misma decodificación Unicode que el documento vivo
La inspección del diccionario sin procesar registra si cada clave de Info existe de forma independiente de su valor, de modo que una cadena vacía explícita no se trata como una clave ausente
Title y Subject requieren un valor rdf:Alt etiquetado como x-default; Author requiere un rdf:Seq que contenga exactamente un valor; los demás mapeos requieren una propiedad simple hallada por URI de espacio de nombres y nombre local
Los valores de texto se comparan por puntos de código Unicode exactos; las fechas se comparan como componentes locales cuando ninguno de los dos valores tiene zona horaria, o como instantes UTC cuando ambos valores llevan zona horaria
TPdfAMetadataState distingue los estados no requerido, equivalente, XMP ausente, tipo RDF incorrecto, valor no coincidente, fecha de Info inválida y fecha de XMP inválida
El método es de solo lectura, requiere un documento activo y no modifica el estado de PDFium ni del origen
var Report: TPdfAMetadataReport;
Report := Pdf1.InspectPdfAMetadata;
if Report.HasXmpPacket and not Report.IsEquivalent then
ShowMessage(IntToStr(Length(Report.Comparisons)) + ' fields inspected');