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 договор
Trueозначава, че трансакцията е приета, включително случая без промени за вече съответстващ документFalseозначава, че трансакцията е откатена след провал на ограничение, валидационна регресия, exception или неизпълнена политикаRequireFullConformanceReport.ValidationSucceededе авторитетният резултат от пълната проверка за съответствие след записана поправка- Със стандартните опции безопасните поправки могат да бъдат записани, докато несвързаните небезопасни констатации от валидацията остават изрично видими в
IssuesиFindings
Граница на безопасните поправки
Методът може да нормализира 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;