function InspectPdfAMetadata: TPdfAMetadataReport;
| Result | TPdfAMetadataReport care conține disponibilitatea XMP, textul erorii de parsare, câmpurile în dezacord și opt comparații per câmp |
Metoda citește Title, Author, Subject, Keywords, Creator, Producer, CreationDate și ModDate prin PDFium, astfel încât șirurile PDFDocEncoding și UTF-16 folosesc aceeași decodare Unicode ca documentul live
Inspecția brută a dicționarului înregistrează dacă fiecare cheie Info există independent de valoarea sa, astfel încât un șir explicit gol nu este tratat ca o cheie absentă
Title și Subject cer o valoare rdf:Alt etichetată x-default; Author cere un rdf:Seq care conține exact o valoare; restul mapărilor cer o proprietate simplă găsită după URI-ul de namespace și numele local
Valorile text se compară după punctele de cod Unicode exacte; datele se compară ca componente locale când nicio valoare nu are fus orar sau ca momente UTC când ambele valori poartă fusuri orare
TPdfAMetadataState distinge stările: nu este cerut, echivalent, XMP lipsă, tip RDF greșit, valoare în dezacord, dată Info invalidă și dată XMP invalidă
Metoda este doar pentru citire, cere un document activ și nu modifică starea PDFium sau a sursei
var Report: TPdfAMetadataReport;
Report := Pdf1.InspectPdfAMetadata;
if Report.HasXmpPacket and not Report.IsEquivalent then
ShowMessage(IntToStr(Length(Report.Comparisons)) + ' fields inspected');