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, створити відсутній ID трейлера, створити чи виправити потоки та словники метаданих, канонізувати ідентифікацію PDF/A за URI простору імен, зберігаючи будь-який законний префікс RDF, видалити заборонені записи Catalog та видалити структури альтернативного подання

Виправлення UTF-8 XMP видаляє заборонені атрибути байтів заголовка пакунка та кодування, використовує канонічний простір імен ідентифікації PDF/A, записує part=4 і rev=2020 та обирає правильну властивість відповідності базового, інженерного або пов'язаного файла

Конвеєр виправлення ніколи не перезаписує потоки вмісту сторінок чи анотацій, шрифти, колірні простори, прозорість, зображення, оператори графіки чи витягнутий текст

Відкат і контроль

Знімки графа охоплюють мутації словників і байти потоків метаданих, тому відкат відновлює вихідний заголовок, стан трейлера, граф об'єктів, вантаж XMP та вміст сторінки

Перевантаження зі спільними знахідками прикріплює дії виправлення, застосований, невиконаний, невдалий чи відкочений статус, лічильники виправлень, стабільні ідентифікатори правил, пункти, шляхи та номери об'єктів і розташування сторінок

Бюджети об'єктів, мутацій, збережених проблем, задекадованих байтів і вмістових токенів запобігають перетворенню ворожими файлами виправлення чи його валідаційних воріт на необмежену роботу

Приклад

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