Diagnostická oprava dokumentu

Diagnostická oprava analyzuje načtené PDF, určí bezpečné opravitelné nesrovnalosti a vrátí strukturovaný report změn SaveLoadedDocumentDiagnostic produkuje deterministický, rozbalený výstup pro inspekci a kontrolovanou textovou editaci; opačným směrem, zpět k plnohodnotnému PDF, funguje RepairDiagnosticDocument

Pracovní postup tam a zpět

  1. Načtěte dokument a zavolejte SaveLoadedDocumentDiagnostic
  2. Upravujte slovníky objektů nebo nekomprimované bajty streamů, aniž byste ručně udržovali /Length, řádky xref nebo startxref
  3. Zavolejte RepairDiagnosticDocument s omezenými volbami
  4. Prohlédněte THPDFDiagnosticRepairReport a opravený cíl použijte jen tehdy, když metoda vrátí True

Smlouva o opravě

Politika oprav

Volající vybírá omezenou politiku oprav. HotPDF neprovádí destruktivní změny bez explicitně povolené akce a každou změnu eviduje

Neplatné nebo nejednoznačné objekty se hlásí místo tichého přepsání

Report

Report uvádí stav, nalezené problémy, provedené akce a diagnostiku pro audit nebo rozhodnutí aplikace

MaxInputBytes, MaxObjectCount a MaxObjectNumber omezí skenování, uchovaná metadata i emitované řádky xref dřív, než se výstup zveřejní

Příklad v Pascalu

var
  Options: THPDFDiagnosticRepairOptions;
  Report: THPDFDiagnosticRepairReport;
begin
  Options := THPDFDiagnosticRepairOptions.Default;
  Options.MaxInputBytes := Int64(16) * 1024 * 1024 * 1024;

  if not THotPDF.RepairDiagnosticDocument(
    'edited-diagnostic.pdf',
    'repaired.pdf',
    Options,
    Report
  ) then
    raise Exception.Create(string(Report.Diagnostic));
end;

Související API