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;

Commit договор

Граница на безопасните поправки

Методът може да нормализира PDF 2.0 header-а, да създаде липсващ trailer ID, да създаде или поправи metadata streams и речници, да канонизира PDF/A-4 идентификацията по namespace URI, като запази всеки валиден RDF префикс, да премахне забранени Catalog записи и да премахне структури за алтернативно представяне

UTF-8 XMP ремонтът премахва забранени атрибути на packet header-а и на кодировката, използва каноничното PDF/A-4 identification namespace, записва part=4 и rev=2020 и избира правилното conformance свойство за base, engineering или associated-file

Ремонтният pipeline никога не презаписва content streams на страници или анотации, шрифтове, цветови пространства, transparency, изображения, графични оператори или извлечен текст

Rollback и одитируемост

Snapshot-ите на графа обхващат мутациите на речниците и байтовете на metadata streams, така че rollback-ът възстановява първоначалните header, trailer състояние, обектен граф, XMP payload и съдържание на страниците

Overload-ът със споделени констатации прилага repair действия, статус applied, unresolved, failed или rolled-back, броячи на поправките, стабилни идентификатори на правила, клаузи, пътища към обекти, номера на обекти и места на страници

Бюджетите за обекти, мутации, запазени проблеми, декодирани байтове и content токени не позволяват на враждебни файлове да превърнат ремонта или неговите валидационни проверки в неограничена работа

Пример

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