THotPDF.RepairPDFA4 Metodu

Deterministik PDF/A-4 normalizasyonu uygulayan sınırlı bir object-graph transaction'ı çalıştırır, sonucu doğrular ve ya eksiksiz güvenli onarım setini commit eder ya da belgenin orijinal durumunu geri yükler

Bildirim

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 sözleşmesi

Güvenli onarım sınırı

Metot, PDF 2.0 header'ını normalleştirebilir, eksik trailer ID'si oluşturabilir, metadata stream'lerini ve sözlüklerini oluşturup onarabilir, PDF/A identification'ı herhangi bir geçerli RDF prefix'ini koruyarak namespace URI'ye göre kanonikleştirebilir, yasak Catalog entry'lerini kaldırabilir ve alternate-presentation yapılarını kaldırabilir

UTF-8 XMP onarımı, yasak packet-header byte ve encoding attribute'larını kaldırır, kanonik PDF/A identification namespace'ini kullanır, part=4 ve rev=2020 yazar ve doğru base, engineering veya associated-file conformance özelliğini seçer

Onarım pipeline'ı asla sayfa veya annotation content stream'lerini, yazı tiplerini, renk uzaylarını, transparency'yi, görselleri, graphics operator'lerini ya da çıkarılan metni yeniden yazmaz

Rollback ve denetlenebilirlik

Graph snapshot'ları sözlük mutasyonlarını ve metadata stream baytlarını kapsar; rollback, orijinal header'ı, trailer durumunu, object graph'ı, XMP payload'ını ve sayfa içeriğini geri yükler

Paylaşılan finding overload'u, onarım action'larını, uygulanan / çözülemeyen / başarısız / rollback edilmiş durumlarını, onarım sayaçlarını, kararlı rule identifier'ları, clause'ları, object path'leri, object numaralarını ve sayfa konumlarını ekler

Object, mutasyon, korunan-issue, decode edilmiş-bayt ve content-token bütçeleri, kötü niyetli dosyaların onarımı veya doğrulama kapılarını sınırsız işe dönüştürmesini engeller

Örnek

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;

İlgili API'ler