PDFium Delphi Component Docs

InspectPdfAMetadata Метод

Компонент: TPdf  ·  Модуль: PDFium
Сообщает точную эквивалентность Info-to-XMP по ISO 19005-1 для активного документа

Syntax

function InspectPdfAMetadata: TPdfAMetadataReport;

ResultTPdfAMetadataReport с доступностью XMP, текстом ошибки разбора, полями несоответствий и восемью построчными сравнениями полей

Description

Метод читает 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 или исходного документа

Example

var Report: TPdfAMetadataReport;
Report := Pdf1.InspectPdfAMetadata;
if Report.HasXmpPacket and not Report.IsEquivalent then
  ShowMessage(IntToStr(Length(Report.Comparisons)) + ' fields inspected');

See Also

NormalizePdfAMetadata, ValidatePdfA, ReadXmpPacket, FPdfXmp