Bir Öğrenci Sıfırdan Tarayıcı İçi PDF Düzenleme Motoru Geliştirdi
Bir geliştirici, JS kütüphanelerinin PDF düzenleyemediğini görünce sıfırdan bir PDF motoru yazdı; render, kayıt ve metin gruplama sorunlarını çözdü.
Bir geliştirici, pdf.js ve jsPDF gibi mevcut JavaScript kütüphanelerinin PDF'leri yalnızca görüntüleyip oluşturabildiğini, gerçek anlamda düzenleyemediğini fark ettikten sonra yaklaşık 14 ay boyunca sıfırdan bir tarayıcı içi PDF düzenleme motoru geliştirdi. Asıl sorun şuydu: PDF'ler metni ve koordinatları saklar ama herhangi bir yapısal gruplama bilgisi tutmaz, bu da güvenilir metin düzenlemeyi göründüğünden çok daha zor hale getirir.
Geliştirme süreci belirgin aşamalardan geçti: farklı font kodlamaları ve sıkıştırma türleri için sağlam bir render motoru oluşturmak yaklaşık yedi ay sürdü, ardından ilk düzenleme özellikleri geldi, sonra bozuk kayıt dosyalarını düzeltmek için zorlu bir dönem yaşandı. En zor kısım ise metin kutusu tanıma oldu — dağınık metin parçalarını tutarlı, düzenlenebilir bloklar halinde gruplamak — bu da birçok örnek PDF üzerinde elle işaretleme yapılarak genel kurallar çıkarılmasını gerektirdi ve yaklaşık iki ay sürdü.
Ortaya çıkan motor artık doğrudan metin düzenleme, redaksiyon, açıklama ekleme, form doldurma, sayfa düzenleme ve meta veri düzenlemeyi destekliyor; ayrıca DOOM'u çalıştıracak kadar güçlü bir JavaScript motoru da içeriyor. Mühendisler için bu proje, PDF standardının her yerde kullanılmasına rağmen tarayıcı yerel araçları tarafından hâlâ yeterince desteklenmediğini ve belge iç yapısını tersine mühendislik yapmanın API yüzeyinden görünmeyen boşlukları ortaya çıkardığını hatırlatıyor.