Yüklenmiş PDF'ten metin ve vektör korumalı PDF/A-4'e

HPDFArchivalConversion, görünür yazı tipleri, renk uzayları ve rendering kaynakları sayfa içeriğini değiştirmeden PDF/A-4'ü karşılayabilen yüklenmiş belgeler için bir koruma profili sunar

Converter, orijinal metin operator'lerini, vektör path'lerini, görselleri, sayfa geometrisini ve mevcut OCR metin katmanlarını tutar; görünür normal anotasyon ve widget görünümlerini vektör Form XObject'lerine düzleştirir, desteklenen metadata ve yapısal sorunları onarır ve yayımdan önce serialize edilmiş result'ı doğrular

Bu profil bir sayfayı asla rasterize etmez: OCR, geçici bir tanıma bitmap'i render edip görünmez aranabilir metin eklediğinde bile RasterizedPages sıfır kalır

Runtime kabulü, Delphi Win32 ve Win64'ü kapsar; Windows FPC implementation'ı taze kaynaklardan derler ve üretilmiş public header'lar C++Builder Win32 ve Win64x ile derlenir

Entry point'ler

function HPDFConvertLoadedToPDFA4Preserving(Source: THotPDF;
  Destination: TStream; const SRGBProfile: TBytes;
  const Options: THPDFArchivalPreservationOptions;
  out Report: THPDFArchivalPreservationReport): Boolean;

function HPDFConvertLoadedToPDFA4PreservingFile(Source: THotPDF;
  const TargetFileName: string; const SRGBProfile: TBytes;
  const Options: THPDFArchivalPreservationOptions;
  out Report: THPDFArchivalPreservationReport): Boolean;

Önce kaynağı yükleyin, çağıranın-sahip olduğu input stream'ini canlı tutun ve operation sırasında converter'a belgeye münhasır erişim verin

Options := THPDFArchivalPreservationOptions.Default;
if not HPDFConvertLoadedToPDFA4PreservingFile(Source, TargetFileName,
  SRGBProfile, Options, Report) then
  raise Exception.Create(Report.Conversion.Diagnostic);

Koruma kanıtı

Converter, mevcut düzenlenmiş kaynak grafiğini bir graf transaction'ı altında snapshot'lar, serialize etmeden sonra kaynağı geri alır ve tüm conversion işini bağımsız bir yüklenmiş klon üzerinde gerçekleştirir

Orijinal decoded sayfa content stream'leri, output reload sonrasında byte-özdeş kalmalı ve orijinal sıralarında orijinal sayfalarından erişilebilir olmalıdır

Sayfa kaynak ağaçları ve tutulan normal appearance kaynak ağaçları, object ve özyineleme limitleriyle taranır; gömülü yazı tipi programları, ToUnicode map'leri, görseller, ICC profilleri ve iç-ice Form XObject'leri orijinal kodlanmış payload'larını tutar — streaming SHA-256 ile doğrulanarak ve output sayfalarından devam eden erişilebilirlik için denetlenerek

Bağımsız content stream'ler, orijinal sayfa operator'lerini graphics-state guard'larla çevreler ve eklenmiş appearance operator'lerini tutar; orijinal bir content stream'i yeniden yazacak native tek-stream append path'inden kaçınır

TextAndVectorContentPreserved, yalnızca native output doğrulaması ve koruma denetimleri geçtikten sonra true olur; conversion veya dosya yayımı başarısız olduğunda temizlenir

Appearance handling

Mevcut bir normal görünüm sağlamak, o görünümde zaten doğru temsil edilen keyfi gömülü-yazı-tipli metni — Unicode dâhil — destekler; converter, sistem yazı tipiyle değiştirmek yerine o görünümü tutar

Düzleştirme, görünür görünümleri tutarken anotasyon etkileşimini, düzenlenebilir field'ları, calculation'ları, action'ları ve signature field'ları kaldırır; her etkilenen anotasyon ve her sentezlenmiş görünüm, kendi kaynak sayfası, anotasyon indeksi ve — mevcutken — object numarasıyla bir kayıp entry'si üretir

Renk, yazı tipleri ve açık kayıplar

Zorunlu ICC argümanı, mevcut archival validator tarafından kabul edilen bir sRGB matrix/TRC profilidir; her mevcut output profili, sağlanan profille tam olarak aynı decoded baytlara sahip olmalıdır — aksi hâlde mevcut output koşulunu yeniden yorumlamamak için conversion reddedilir

Converter, gerektiğinde sRGB bir PDF/A output intent ekler, gerçek serializer'ı bir PDF 2.0 header'ına eşzamanlar ve sınırlı temel PDF/A-4 metadata ve yapısal onarım çağırır

Eksik görünür yazı tipi programlarını gömmez, orijinal metni yeniden kodlamaz, DeviceCMYK operator'lerini yeniden renklendirmez, mevcut bir output koşulunu değiştirmez veya sayfa saydamlığını bir bitmap'e düzleştirmez; çözümlenmemiş native preflight bulguları yayımı reddeder

Şifreli kaynaklar conversion'dan önce decrypt edilmelidir; signature field'lar açık AllowSignatureInvalidation gerektirir ve mevcut gömülü dosyalar, bu profil temel PDF/A-4'ü hedeflediği için açık RemoveEmbeddedFiles gerektirir

Losses, ayrıca signature invalidation'ı, embedded-file kaldırmasını, legacy Info dictionary'lerinin kaldırmasını ve yasak catalog veya presentation metadata'sının kaldırmasını raporlar

Mevcut XMP desteklendiğinde korunur; metadata üretildiğinde, desteklenen title, author, subject ve keyword bilgisi aktarılır — keyfi legacy Info alanlarının hayatta kalması vaat edilmez

OCR ve bütçeler

AddOCRToImagePages default'ta false'tur; etkinleştirmek, çıkarılabilir metni olmayan sayfaları tanır ve orijinal içeriği veya mevcut OCR katmanlarını değiştirmeden görünmez metin ekler

OCREngine'i bir uygulama engine'ine ayarlayın veya built-in sınırlı ASCII OCR engine'i için nil bırakın — dili ve tipografi kapsamı built-in tanıma profili'ninki olarak kalır

OCROptions, tanıma resolution'ını ve kelime bütçelerini kontrol eder; converter ise text-olu-sayfaları-atla'yı, mevcut OCR katmanlarının korunmasını ve yeni bir optional-content grubunun atlanmasını zorlar

Limits, sayfa sayısı, object sayısı, staged output baytları, tekil stream işi, kümülatif stream işi, cancellation ve eşzamanlı checkpoint'ler için THPDFArchivalConversionOptions.Default kullanır; raster piksel limitleri yalnızca OCR tanıma bitmap'leri render ettiğinde uygulanır

Ek default'lar, 1.024 kayıp entry'si, 1.048.576 çıkarılmış veya beklenen metin code unit'i ve native doğrulama geçişi başına 4.000.000 content token'dır

Kaynak payload hashing'i, kodlanmış baytları aynı stream-iş bütçelerine sayar; kaynak ve output doğrulaması ikisi de kümülatif işi tüketir — böylece büyük scan koleksiyonları, kaynak doğrulaması sabit bir 64 KiB hash buffer'ı kullanmasına rağmen açıkça artırılmış bir MaxTotalDecodedBytes gerektirebilir

Bütçeler, kaynak yüklemeden sonra uygulanır ve converter-owned snapshot'ı ile staged output'u ayrı sınırlar; güvenilmeyen girdi kabul ederken loader limitlerini yapılandırın

Yayımlama ve doğrulama

Stream API, konum sıfırda boş seekable bir hedef gerektirir ve kaynak alias'larını reddeder; staged baytları yalnızca reload, native doğrulama, koruma denetimleri ve cancellation denetimleri başarılı olduktan sonra kopyalar

Bir hedef yazma başarısızlığı best-effort bir reset tetikler; keyfi özel bir stream o reset'i reddedebilir — bu yüzden atomik dosya yayımı için file entry point'ini kullanın

Dosya API, kaynak alias'larını sınar, hedefin yanında münhasır geçici bir dosya oluşturur, onu flush eder ve tüm denetimler geçtikten sonra hedefi MoveFileEx ile değiştirir; önceki başarısızlıklar mevcut hedefi korur ve geçici dosyayı kaldırır

InitialValidationIssues, Repair, Conversion.ValidationIssues, OCR detayları, stream sayıları, çıkarılmış metin sayıları ve açık kayıplar inceleme için kullanılabilir kalır

Native doğrulama, desteklenen HotPDF PDF/A-4 kurallarını kapsar ve keyfi PDF'lerin blanket bir sertifikası değildir; regresyon kabulü, ayrıca üretilmiş appearance ve native OCR artefaktları üzerinde bağımsız pypdf ve MuPDF denetimleri artı veraPDF PDF/A-4 doğrulaması kullanır

Gerçek corpus regresyonu, gömülü-yazı-tipli Word ve kütüphane rehberlerini ve 380 sayfalık bir Çince scan koleksiyonunu içerir; gömülmemiş yazı tipleri ve DeviceCMYK içeriğiyle bir trade raporu ise açık bir reddetme case'idir

Regresyon komutları

powershell -File Tests/Delphi/Run-ArchivalPreservationTests.ps1 -Platform Win32
powershell -File Tests/Delphi/Run-ArchivalPreservationTests.ps1 -Platform Win64
python Tests/Delphi/Fixtures/ArchivalPreservation/verify_preserving_output.py
verapdf --format xml --flavour 4 Tests/Delphi/generated/ArchivalPreservation/appearance.pdf Tests/Delphi/generated/ArchivalPreservation/ocr.pdf Tests/Delphi/generated/ArchivalPreservation/native-appearance.pdf

Delphi runner, viewer başlatmasını bastırır ve hem koruma hem mevcut raster regresyon fixture'larını içerir; bağımsız veraPDF kabulü, gerçek PDF/A-4 doğrulama profilini kullanır

İlgili konular

Raster archival conversion, native rendering desteklendiğinde orijinal metin ve vektörlerin açık kaybıyla ayrı bir profil sağlar