function InspectPdfAMetadata: TPdfAMetadataReport;
| Result | TPdfAMetadataReport que contiene la disponibilidad de XMP, el texto del error de análisis, los campos en desacuerdo 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 activo
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 explícitamente vacía no se trate 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 encontrada 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 instantáneas UTC cuando ambos valores llevan zona horaria
TPdfAMetadataState distingue los estados no requerido, equivalente, XMP ausente, tipo RDF incorrecto, valor en desacuerdo, 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');