THotPDF.RepairPDFA4 Method
Запускает ограниченную транзакцию объектного графа, применяющую детерминированную нормализацию PDF/A-4, валидирует результат и либо фиксирует полный набор безопасных исправлений, либо восстанавливает исходное состояние документа
Объявление
function RepairPDFA4(
const Options: THPDFPDFA4RepairOptions;
out Report: THPDFPDFA4RepairReport;
out Issues: THPDFPDFA4ValidationIssues): boolean; overload;
function RepairPDFA4(
const Options: THPDFPDFA4RepairOptions;
out Report: THPDFPDFA4RepairReport;
out Issues: THPDFPDFA4ValidationIssues;
out Findings: THPDFComplianceFindings): boolean; overload;
Контракт фиксации
Trueозначает, что транзакция была принята, включая случай отсутствия изменений для уже соответствующего документаFalseозначает, что транзакция откатилась после сбоя лимита, регрессии валидации, исключения или невыполненной политикиRequireFullConformanceReport.ValidationSucceeded— авторитетный результат полной соответствия после зафиксированного восстановления- С опциями по умолчанию безопасные исправления могут быть зафиксированы, пока несвязанные небезопасные находки валидации остаются явно в
IssuesиFindings
Граница безопасного восстановления
Метод может нормализовать заголовок PDF 2.0, создать отсутствующий trailer ID, создать или восстановить metadata stream и словари, канонизировать идентификацию PDF/A по namespace URI с сохранением любого допустимого префикса RDF, удалить запрещённые записи Catalog и удалить структуры альтернативной презентации
Восстановление UTF-8 XMP удаляет запрещённые байты заголовка пакета и атрибуты кодирования, использует каноническое пространство имён идентификации PDF/A, записывает part=4 и rev=2020 и выбирает правильное свойство соответствия base, engineering или associated-file
Конвейер восстановления никогда не переписывает content stream страниц или аннотаций, шрифты, цветовые пространства, прозрачность, изображения, графические операторы или извлечённый текст
Откат и аудируемость
Снимки графа покрывают мутации словарей и байты metadata stream, поэтому откат восстанавливает исходный заголовок, состояние trailer, объектный граф, payload XMP и содержимое страниц
Overload с общими находками присоединяет действия восстановления, статусы applied, unresolved, failed или rolled-back, счётчики исправлений, стабильные идентификаторы правил, клаузулы, пути объектов, номера объектов и позиции страниц
Бюджеты объектов, мутаций, удержанных находок, декодированных байтов и токенов содержимого не позволяют вредоносным файлам превратить восстановление или его валидационные проверки в безграничную работу
Example
var
Options: THPDFPDFA4RepairOptions;
Report: THPDFPDFA4RepairReport;
Issues: THPDFPDFA4ValidationIssues;
begin
Options := THPDFPDFA4RepairOptions.Default;
Options.Profile := p4pAutomatic;
if not PDF.RepairPDFA4(Options, Report, Issues) then
raise Exception.Create('PDF/A-4 repair rolled back');
if not Report.ValidationSucceeded then
LogRemainingPDFA4Issues(Issues);
end;