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
True, transaction'ın kabul edildiği anlamına gelir; zaten uyumlu bir belge için değişiklik yapılmaması durumu da buna dahildirFalse, bir limit aşımı, doğrulama gerilemesi, istisna ya da karşılanmayanRequireFullConformancepolicy'si sonrasında transaction'ın rollback edildiği anlamına gelirReport.ValidationSucceeded, commit edilmiş bir onarımdan sonra yetkili tam-uyum sonucudur- Varsayılan seçeneklerle, güvenli onarımlar commit olabilirken birbirinden bağımsız güvenli olmayan doğrulama bulguları
IssuesveFindingsiçinde açıkça durmaya devam eder
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;