PDF Formlar Neden Bazı Uygulamalarda Boş Açılıyor

PDF formlarıyla çalışan bir yazılımcı iseniz bu sorunu biliyorsunuz: kullanıcı formu doldurur, gönderir, ama yönetici dosyayı macOS Preview, Google Chrome veya mobil bir okuyucuda açtığında tüm alanlar boş görünüyor. Aynı dosya Adobe Acrobat'ta mükemmel açılıyor.

Bu bir bozulma hatası değil. PDF standardında (ISO 32000-1) form verileri sayfanın görsel içeriğinden ayrı tutulur. Adobe Acrobat bu ayrı veri katmanını başarıyla yorumlarken, Chrome, Safari Preview ve mobil uygulamalar bu alanları render etmeyebiliyor.

Sorunun Kökü

PDF'de form alanlarının değerleri iki yerde saklanır: form widget (etkileşimli alan) ve /AP (appearance stream) adlı görünüm katmanı. Acrobat her ikisini de kontrol eder ve eksikse tamamlar. Diğer okuyucular yalnızca /AP'ye bakar; eğer form doldurulurken bu katman güncellenmemişse, alan boş görünür.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası

Çözüm: Form Flattening

Flattening, form alanlarını normal metin ve grafiğe dönüştürüp PDF'ye kalıcı olarak gömüyor. Böylece tüm okuyucular aynı sonucu görebiliyor. Rust'ta bu işi yapan kütüphaneler var (pdfium-render, lopdf gibi), Python'da reportlab ve pypdf, JavaScript'te pdfkit kullanılabilir.

Form gönderdikten sonra flattening uygulamak, özellikle arşivleme ve denetim amaçlı dokümanlarda standart pratik haline geldi. Böylece kullanıcı ne doldurmuşsa, yönetici de onu görebiliyor.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz