THotPDF.RepairPDFUA2Structure Method

Поправя възстановимите PDF/UA-2 дефекти в namespace-и, атрибути, структура и достъпност в рамките на copy-on-write графова трансакция и валидира кандидатния граф преди commit

Декларация

function RepairPDFUA2Structure(
  const Options: THPDFUA2RepairOptions;
  out Report: THPDFUA2RepairReport;
  out Issues: THPDFUA2ValidationIssues): boolean; overload;

function RepairPDFUA2Structure(
  const Options: THPDFUA2RepairOptions;
  out Report: THPDFUA2RepairReport;
  out Issues: THPDFUA2ValidationIssues;
  out Findings: THPDFComplianceFindings): boolean; overload;

Unit

HPDFDoc

Опции за ремонта

Започнете с THPDFUA2RepairOptions.Default и презапишете само политиките, изисквани от входния работен процес

ПолеПредназначение
NormalizeDuplicateNamespacesВъзстановява StructTreeRoot/Namespaces с един каноничен непряк речник на URI и отхвърля конфликтни role map-ове
RegisterReferencedNamespacesРегистрира валидни namespace речници, реферирани от структурни елементи, атрибути или role map-ове, чувствителни към namespace
RepairStandardStructureNamespacesЗадава PDF 2.0 namespace на стандартните роли, когато namespace липсва или е невалиден, и винаги нормализира top-level Document
RepairAttributeNamespacesКанонизира namespace референциите на атрибутите и премахва невалидни namespace записи от стандартните собственици
RepairAttributeRevisionsНормализира отрицателни или дробни номера на ревизии и премахва осиротели ревизионни записи от масивите с атрибути
RepairListSemanticsНормализира номерация, флагове за продължение, невалидни типове продължение и един misplaced caption, без да измисля съдържание на списъка
RepairTableSemanticsНормализира невалидни span-ове и scope-ове, премахва невалидни локални за таблицата header референции и премества един misplaced caption
RepairRubyWarichuSequencesПренарежда децата само когато точният необходим multiset от роли вече е наличен
RepairPronunciationHintsПремахва подсказки с грешен тип, реже невалидни lexicon референции и нормализира вградените PLS MIME подтипове
RepairMissingAlternateTextВъзстановява липсващ Alt за Figure, Formula и Form от съществуващо заглавие, expansion текст, извлечен текст със същия MCID или изричен fallback, в този ред
RepairLanguageInheritanceИздига валиден език от структурния корен или изричния default до Catalog-а и премахва невалидни или излишни езикови записи на структурно ниво, когато наследяването е еднозначно
RepairHeadingOrderПреномерира само дефекти от тип first-heading и пропуснато ниво, като запазва реда на документа
RepairArtifactTaggingПрезаписва marked-content таговете, свързани със структурен елемент Artifact, за съдържание от producer и заредени страници
AllowDocumentFragmentHeadingStartsНулира контекста на заглавията във всеки DocumentFragment както за ремонта, така и за валидацията след него
RollbackOnValidationFailureВъзстановява първоначалния граф, когато след ремонта остане някоя PDF/UA-2 грешка
CustomAttributeNamespaceURIЗадава изричния namespace за собственици на потребителски атрибути, чиято семантика не може да бъде безопасно изведена, с празен default, който пропада затворено
DefaultLanguageЗадава BCP-47 езиков таг само когато нито Catalog-ът, нито структурният корен съдържат валиден език
FallbackAlternateTextЗадава прегледан от повикващия alternate текст след като всички източници, извлечени от документа, провалят, с празен default, който никога не измисля описание
MaxGeneratedAlternateTextCharactersОграничава извличането на текст със същия MCID и по подразбиране е 4,096 UTF-16 code units
MaxObjectsОграничава сканирането на обектния граф и по подразбиране е 1,000,000 обекта
MaxRepairsОграничава запазените мутации и по подразбиране е 100,000 repair операции

Доклад от ремонта

THPDFUA2RepairReport докладва дали графът е променен или откатен, дали някое ограничение е надвишено, статуса на валидацията след ремонта, прегледаните обекти, останалите грешки и броячите за всяко семейство поправки, включително alternate текст, езикови записи, нива на заглавия и Artifact тагове

UnresolvedAlternateTextCount, UnresolvedLanguageCount и UnresolvedArtifactCount разграничават семантиката, която все още изисква преглед от автора, от автоматичните мутации

Върнатият масив THPDFUA2ValidationIssues съдържа диагностиката след ремонта, когато валидацията проваля, и стабилна диагностика, специфична за ремонта, когато ресурсно ограничение или конфликтен дублиран role map прекъсне трансакцията

Детайлният overload връща и констатациите преди ремонта, анотирани като crsApplied, crsUnresolved, crsRolledBack или crsFailed, плюс обобщени броячи за всяко семейство поправки

Този provenance overload изпълнява допълнителен ограничен валидационен проход преди ремонта; използвайте съществуващия overload с три изхода, когато са нужди само финалният доклад и проблемите

Атомарност и безопасност

Пример

var
  Options: THPDFUA2RepairOptions;
  Report: THPDFUA2RepairReport;
  Issues: THPDFUA2ValidationIssues;
begin
  Options := THPDFUA2RepairOptions.Default;
  Options.DefaultLanguage := 'en-US';
  Options.CustomAttributeNamespaceURI :=
    'https://example.com/ns/accessibility-attributes';
  if not PDF.RepairPDFUA2Structure(Options, Report, Issues) then
    raise Exception.CreateFmt('%s at %s',
      [String(Issues[0].Code), String(Issues[0].Path)]);
end;

Свързани API