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');