function InspectPdfAMetadata: TPdfAMetadataReport;
| Result | TPdfAMetadataReport zawierający dostępność XMP, tekst błędu parsowania, pola niezgodności i osiem porównań poszczególnych pól |
Metoda odczytuje Title, Author, Subject, Keywords, Creator, Producer, CreationDate i ModDate przez PDFium, więc ciągi PDFDocEncoding i UTF-16 używają tego samego dekodowania Unicode co żywy dokument
Surowa inspekcja słownika zapisuje, czy każdy klucz Info istnieje niezależnie od swojej wartości, więc jawnie pusty ciąg nie jest traktowany jako klucz nieobecny
Title i Subject wymagają wartości rdf:Alt otagowanej x-default; Author wymaga rdf:Seq zawierającego dokładnie jedną wartość; pozostałe mapowania wymagają prostej właściwości znalezionej po URI przestrzeni nazw i nazwie lokalnej
Wartości tekstowe są porównywane po dokładnych punktach kodowych Unicode; daty są porównywane jako lokalne składowe, gdy żadna z wartości nie ma strefy czasowej, albo jako chwile UTC, gdy obie wartości mają strefy czasowe
TPdfAMetadataState rozróżnia stany: niewymagane, równoważne, brak XMP, zły typ RDF, niezgodność wartości, nieprawidłowa data Info i nieprawidłowa data XMP
Metoda jest tylko do odczytu, wymaga aktywnego dokumentu i nie modyfikuje stanu PDFium ani dokumentu źródłowego
var Report: TPdfAMetadataReport;
Report := Pdf1.InspectPdfAMetadata;
if Report.HasXmpPacket and not Report.IsEquivalent then
ShowMessage(IntToStr(Length(Report.Comparisons)) + ' fields inspected');