PDF, sayfa içindeki her karakteri koordinat ve matrislerle tanımlar; “kelime” veya “paragraf” kavramı yoktur. Metin akışını doğru yakalayabilmek için PDF çekirdeği, gliflerin konumlarını toplar ve mantıksal okuma sırası çıkarır. Ayrıca erişilebilirlik etiketleri olan “tagged PDF”ler, başlık, paragraf, liste ve tablo gibi yapıları içerir; bu bilgiler Word belgelerine daha yüksek doğrulukla aktarılabilir.
Taranmış veya görüntü tabanlı PDF’ler ise metin katmanına sahip değildir ve OCR gerekir. Tarayıcıda OCR için Tesseract.js gibi WASM tabanlı motorlar kullanılır; ön işleme için OpenCV.js, sayfa yerleşimi analizi için ise hafif makine öğrenmesi modelleri yararlıdır.
Tamamen istemci tarafında dönüşüm, dosyaların cihazı terk etmemesi nedeniyle gizlilik avantajı sağlar ve küçük–orta büyüklükteki dosyalar için hızlıdır. Ancak, tarayıcıdaki WebAssembly bellek sınırları ve iş parçacığı sınırlamaları, çok sayfalı veya karmaşık belgelerde performansı etkileyebilir. Sunucu tabanlı çözümler güçlü CPU/GPU kaynaklarıyla yüksek kalite sunar fakat dosya yükleme süresi ve gizlilik endişeleri yaratır.
pdfpico, istemci tarafı yaklaşımı benimser. Bellek limiti 4 GB olan klasik WASM modülleri ve çok çekirdekten yararlanmak için gereken COOP/COEP başlıkları gibi tarayıcı sınırlamalarını göz önünde bulundurarak tasarlanmıştır.
pdfpico’nun PDF’ten Word’e dönüştürme özelliği, PDF.js ile PDF içeriğini okur ve her sayfayı yüksek çözünürlüklü bir görsele dönüştürür. Ardından, docx kitaplığı kullanılarak bu görseller Word sayfalarına yerleştirilir. İlerleyen sürümlerde, PDF’in mantıksal yapısına erişerek gerçek paragraflar, başlıklar ve tabloların düzenlenebilir olarak aktarılması hedeflenmektedir. Tüm işlemler tarayıcıda gerçekleşir; hiçbir dosya yüklenmez.
Fonksiyon, her sayfayı işlerken ilerleme çubuğu ile durumu gösterir ve işlem bittiğinde düzenlenebilir DOCX dosyası indirmeniz için hazırlar.