THotPDF.RepairPDFUA2Structure Method

Ripara difetti recuperabili di namespace, attributi, struttura e accessibilità PDF/UA-2 all'interno di una transazione graph copy-on-write e valida il graph candidato prima del commit

Dichiarazione

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

Opzioni di riparazione

Partire da THPDFUA2RepairOptions.Default e sovrascrivere solo le decisioni di policy richieste dal workflow di input

CampoScopo
NormalizeDuplicateNamespacesRicostruisce StructTreeRoot/Namespaces con un dizionario indiretto canonico per URI e rifiuta role map in conflitto
RegisterReferencedNamespacesRegistra i dizionari di namespace validi referenziati da elementi di struttura, attributi o role map sensibili al namespace
RepairStandardStructureNamespacesAssegna il namespace PDF 2.0 ai ruoli standard quando il namespace manca o non è valido e normalizza sempre il Document di primo livello
RepairAttributeNamespacesCanonizza i riferimenti namespace degli attributi e rimuove le voci di namespace non valide dai proprietari standard
RepairAttributeRevisionsNormalizza i numeri di revisione negativi o frazionari e rimuove le voci di revisione orfane dagli array di attributi
RepairListSemanticsNormalizza numerazione, flag di continuazione, tipi di continuazione non validi e una singola didascalia fuori posto senza inventare contenuto della lista
RepairTableSemanticsNormalizza span e scope non validi, rimuove i riferimenti a header locali della tabella non validi e sposta una singola didascalia fuori posto
RepairRubyWarichuSequencesRiordina i figli solo quando l'esatto multiset di ruoli richiesto è già presente
RepairPronunciationHintsRimuove gli hint con tipo errato, pota i riferimenti a lexicon non validi e normalizza i sottotipi MIME PLS incorporati
RepairMissingAlternateTextRipristina l'Alt mancante per Figure, Formula e Form a partire da un titolo esistente, testo di espansione, testo estratto con stesso MCID o un fallback esplicito, in quest'ordine
RepairLanguageInheritancePromuove al Catalog una lingua predefinita valida della radice di struttura o esplicita, e rimuove le voci di lingua a livello di struttura non valide o ridondanti quando l'ereditarietà non è ambigua
RepairHeadingOrderRinumera solo i difetti di primo heading e di livello saltato, mantenendo l'ordine del documento
RepairArtifactTaggingRiscrive i tag marked-content associati a un elemento di struttura Artifact per il contenuto producer e delle pagine caricate
AllowDocumentFragmentHeadingStartsReimposta il contesto di heading dentro ogni DocumentFragment, sia per la riparazione sia per la validazione post-riparazione
RollbackOnValidationFailureRipristina il graph originale quando dopo la riparazione resta un errore PDF/UA-2
CustomAttributeNamespaceURIFornisce il namespace esplicito per i proprietari di attributi custom le cui semantiche non possono essere inferite in modo sicuro, con un valore predefinito vuoto che fallisce in modo conservativo
DefaultLanguageFornisce un tag di lingua BCP-47 solo quando né il Catalog né la radice di struttura contengono una lingua valida
FallbackAlternateTextFornisce testo alternativo revisionato dal chiamante dopo il fallimento di tutte le fonti derivate dal documento, con un valore predefinito vuoto che non fabbrica mai una descrizione
MaxGeneratedAlternateTextCharactersLimita l'estrazione di testo con stesso MCID e ha come predefinito 4.096 code unit UTF-16
MaxObjectsLimita la scansione dell'object graph e ha come predefinito 1.000.000 di oggetti
MaxRepairsLimita le mutazioni trattenute e ha come predefinito 100.000 operazioni di riparazione

Report di riparazione

THPDFUA2RepairReport riporta se il graph è stato modificato o ha subìto un rollback, se un limite è stato superato, lo stato di validazione post-riparazione, gli oggetti esaminati, gli errori residui e i conteggi per ogni famiglia di riparazione, inclusi testo alternativo, voci di lingua, livelli di heading e tag Artifact

UnresolvedAlternateTextCount, UnresolvedLanguageCount e UnresolvedArtifactCount distinguono le semantiche che richiedono ancora una revisione dell'autore dalle mutazioni automatiche

L'array THPDFUA2ValidationIssues restituito contiene le diagnostiche post-riparazione quando la validazione fallisce e diagnostiche stabili specifiche della riparazione quando un limite di risorse o un role map duplicato in conflitto abortisce la transazione

L'overload dettagliato restituisce inoltre i finding pre-riparazione annotati come crsApplied, crsUnresolved, crsRolledBack o crsFailed, oltre a riepiloghi con conteggi per ogni famiglia di riparazione

Questo overload di provenance esegue un ulteriore passaggio di validazione pre-riparazione con limiti; usare l'esistente overload a tre output quando servono solo il report finale e le issue

Atomicità e sicurezza

Esempio

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 correlate