function InspectPdfAMetadata: TPdfAMetadataReport;
| Result | TPdfAMetadataReport המכיל זמינות XMP, טקסט שגיאת ניתוח, שדות אי-התאמה ושמונה השוואות לכל שדה |
המתודה קוראת את Title, Author, Subject, Keywords, Creator, Producer, CreationDate ו-ModDate דרך PDFium, כך שמחרוזות PDFDocEncoding ו-UTF-16 עוברות פענוח Unicode זהה לזה של המסמך החי
בדיקת המילון הגולמי רושמת בנפרד האם כל מפתח Info קיים, בלי תלות בערכו, כך שמחרוזת ריקה מפורשת אינה מטופלת כמפתח נעדר
Title ו-Subject דורשים ערך rdf:Alt מתויג x-default; Author דורש rdf:Seq המכיל בדיוק ערך אחד; שאר המיפויים דורשים מאפיין פשוט שמאותר לפי URI של מרחב שמות ושם מקומי
ערכי טקסט מושווים לפי נקודות קוד Unicode מדויקות; תאריכים מושווים כרכיבים מקומיים כאשר לאף ערך אין אזור זמן, או כרגעי UTC כאשר לשני הערכים יש אזורי זמן
TPdfAMetadataState מבחין בין המצבים: לא-נדרש, שקול, XMP חסר, סוג RDF שגוי, אי-התאמת ערך, תאריך Info שגוי ותאריך XMP שגוי
המתודה לקריאה בלבד, דורשת מסמך פעיל ואינה משנה את PDFium או את מצב המקור
var Report: TPdfAMetadataReport;
Report := Pdf1.InspectPdfAMetadata;
if Report.HasXmpPacket and not Report.IsEquivalent then
ShowMessage(IntToStr(Length(Report.Comparisons)) + ' fields inspected');