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 розрізняє рекомендаційні діагностики та помилки перевірки
Параметри
| Field | Purpose |
|---|---|
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 каталогу та дерево назв виділяються разом