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