THotPDF.RepairPDFA4 Method

Uruchamia ograniczoną transakcję na grafie obiektów, która stosuje deterministyczną normalizację PDF/A-4, waliduje wynik, a następnie albo zatwierdza kompletny zestaw bezpiecznych napraw, albo przywraca pierwotny stan dokumentu

Deklaracja

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;

Kontrakt zatwierdzania

Granica bezpiecznych napraw

Metoda może znormalizować nagłówek PDF 2.0, utworzyć brakujący trailer ID, utworzyć lub naprawić strumienie i słowniki metadanych, kanonicznie zapisać identyfikację PDF/A według URI przestrzeni nazw z zachowaniem dowolnego legalnego prefiksu RDF, usunąć zakazane wpisy Catalog oraz usunąć struktury alternatywnej prezentacji

Naprawa UTF-8 XMP usuwa zakazane atrybuty bajtowe i kodowania nagłówka pakietu, używa kanonicznej przestrzeni nazw identyfikacji PDF/A, zapisuje part=4 i rev=2020 oraz wybiera właściwą właściwość zgodności: bazową, inżynieryjną albo plików dołączonych

Potok naprawy nigdy nie przepisuje strumieni zawartości stron ani adnotacji, fontów, przestrzeni kolorów, przezroczystości, obrazów, operatorów graficznych ani ekstrahowanego tekstu

Wycofywanie i audytowalność

Snapshoty grafu obejmują mutacje słowników i bajty strumieni metadanych, więc wycofanie przywraca pierwotny nagłówek, stan trailera, graf obiektów, payload XMP i zawartość stron

Wariant ze współdzielonymi wynikami dołącza akcje naprawcze, statusy zastosowane, nierozwiązane, nieudane lub wycofane, liczniki napraw, stabilne identyfikatory reguł, klauzule, ścieżki obiektów, numery obiektów i lokalizacje stron

Budżety obiektów, mutacji, zachowanych problemów, zdekodowanych bajtów i tokenów zawartości uniemożliwiają adversarialnym plikom zamianę naprawy albo jej bramek walidacji w nieograniczoną pracę

Przykład

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;

Powiązane API