THotPDF.ValidatePDFA4 Method

Перевіряє згенерований або завантажений граф об'єктів щодо підтримуваного базового профілю PDF/A-4, інженерного PDF/A-4e або профілю супутніх файлів PDF/A-4f і повертає стабільні структуровані діагностичні повідомлення

Оголошення

function ValidatePDFA4(
  const Options: THPDFPDFA4ValidationOptions;
  out Issues: THPDFPDFA4ValidationIssues): boolean; overload;

function ValidatePDFA4(
  const Options: THPDFPDFA4ValidationOptions;
  out Findings: THPDFComplianceFindings): boolean; overload;

Модуль

HPDFDoc

Типи профілю та серйозності

THPDFPDFA4Profile = (
  p4pAutomatic,
  p4pBase,
  p4pEngineering,
  p4pAssociatedFiles
);

THPDFPDFA4IssueSeverity = (
  p4isWarning,
  p4isError
);

THPDFPDFA4Profile вибирає визначення метаданих або явний профіль відповідності, тоді як THPDFPDFA4IssueSeverity розрізняє рекомендаційні діагностики та помилки перевірки

Параметри

FieldPurpose
ProfileВибирає автоматичне виявлення на основі метаданих, базову, інженерну або перевірку супутніх файлів
MaxObjectsОбмежує ітеративний обхід графа об'єктів і за замовчуванням становить 1 000 000 об'єктів
MaxIssuesОбмежує збережені діагностики та за замовчуванням становить 1 024 діагностики
MaxDecodedBytesОбмежує сукупні декодовані байти метаданих, ICC і потоку вмісту та за замовчуванням становить 64 MiB
MaxContentTokensОбмежує сукупні токени потоку вмісту та за замовчуванням становить 4 000 000 токенів
CheckEmbeddedFontsПеревіряє шрифти відтворення щодо вбудованої програми шрифтів
CheckAnnotationAppearancesПеревіряє прапорці анотацій і потоки звичайних зовнішніх виглядів
CheckOptionalContentПеревіряє назви конфігурацій необов'язкового вмісту та їхню унікальність
CheckColourSpacesПеревіряє намальований колір пристрою, ICC-профілі, вихідні наміри, типові значення, зображення, затінення, форми та групи прозорості
CheckTransparencyПеревіряє намальований альфа-канал, м'які маски, режими змішування та покриття простору змішування на рівні сторінки
CheckCompositeFontsПеревіряє нащадків Type 0, CIDSystemInfo, сумісність CMap та обмеження CIDToGIDMap
CheckMetadataPacketsПеревіряє кожен потік метаданих щодо UTF-8, заголовка пакета, оболонки RDF та обмежень ідентифікації PDF/A

Діагностика

Кожен THPDFPDFA4ValidationIssue повідомляє серйозність, стабільний код із простором імен, відповідний пункт ISO 19005-4, шлях до об'єкта, номер об'єкта, індекс сторінки з нуля, коли відомий, та зрозуміле людині повідомлення

Перевантаження THPDFComplianceFindings надає той самий обхід через спільну машинозчитувану модель висновків із профілем PDF/A-4 і станом ремонту crsNotAttempted

Валідатор охоплює ідентифікацію PDF 2.0, ідентифікатор трейлера та стан шифрування, кожен пакет метаданих, обмеження Info, заголовки ICC і кількість каналів, вихідні наміри документа та сторінки, намальований колір пристрою, успадкований стан графіки в масивах потоків вмісту та вкладених формах XObjects, маски зображень, затінення, прозорість, вбудовування відтворених шрифтів, зв'язки складових шрифтів, анотації та зовнішні вигляди, обмеження AcroForm, дії та додаткові дії, супутні файли, необов'язковий вміст, зовнішні посилання та характерні для профілю правила 3D чи вкладень

Висновки про колір і прозорість ґрунтуються на операторах малювання, а не лише на операторах налаштування кольору; токенізацію вмісту та повторне використання декодованих потоків кешовано, тоді як кожен виклик усе ще оцінює успадкований стан графіки для свого контексту сторінки або форми

Ліміти декодованих байтів, токенів вмісту, об'єктів і збережених діагностик завершуються закрито зі стабільними висновками pdfa4.validation.*, перш ніж може продовжитися необмежена робота

Приклад

var
  Options: THPDFPDFA4ValidationOptions;
  Issues: THPDFPDFA4ValidationIssues;
begin
  Options := THPDFPDFA4ValidationOptions.Default;
  Options.Profile := p4pAutomatic;
  if not PDF.ValidatePDFA4(Options, Issues) then
    raise Exception.CreateFmt('%s at %s',
      [String(Issues[0].Code), String(Issues[0].Path)]);
end;

Поведінка генерації

EndDoc автоматично запускає валідатор для '4', '4E' і '4F' і піднімає помилку до серіалізації, коли залишається помилка

Генерація PDF/A-4 пропускає запис Info у трейлері, PDF/A-4f завжди створює потрібне дерево назв EmbeddedFiles, а анотації вкладених файлів приймаються лише PDF/A-4f, коли вбудований потік, Filespec, зв'язок AF, масив AF каталогу та дерево назв виділяються разом

Пов'язані API