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;

Контракт фиксации

Граница безопасного восстановления

Метод может нормализовать заголовок 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;

Связанные API