25 puan yazan GN⁺ 2025-08-16 | 1 yorum | WhatsApp'ta paylaş
  • EmbedPDF, herhangi bir JavaScript projesine kolayca entegre edilebilen açık kaynak bir PDF görüntüleyicidir
  • React, Vue, Svelte, Preact, Vanilla JS gibi çeşitli frontend framework’leriyle uyumludur
  • Açıklamalar, vurgulama, gerçek metin silme (redaction), arama, yakınlaştırma/uzaklaştırma ve döndürme gibi zengin özellikler içerir
  • Sanal kaydırma ve eklenti yapısı ile hem performans artışı hem de genişletilebilirlik sunar
  • MIT lisansı ile herkes tarafından özgürce kullanılabilir ve katkı yapılabilir

EmbedPDF açık kaynak PDF görüntüleyici projesine genel bakış

  • EmbedPDF, herhangi bir JavaScript projesine kolayca eklenebilen, framework’ten bağımsız, açık kaynak bir PDF görüntüleyicidir
  • MIT lisansı ile sunulur ve React, Vue, Svelte, Preact, Vanilla JS gibi çeşitli modern frontend framework’leriyle uyumluluğu ile öne çıkar
  • Modern bir okuma deneyimi ve geliştirici dostu bir API sunar

Başlıca özellikler

  • Açıklama desteği: vurgulama, yapışkan notlar, serbest metin, mürekkep gibi çeşitli açıklama özellikleri sunar
  • Gerçek Redaction: redaction özelliği kullanıldığında belgedeki gerçek içeriğin tamamen kaldırılmasını sağlayan bir güvenlik işlevi sunar
  • Arama, metin seçimi, yakınlaştırma/uzaklaştırma, döndürme gibi temel PDF işlemlerini içerir
  • Akıcı ve sanallaştırılmış kaydırma sayesinde büyük belgeler de performans düşüşü olmadan görüntülenebilir
  • Eklenti tabanlı mimari ve tree-shake edilebilir eklentiler sayesinde gereksiz kodların hariç tutulmasını ve kolay genişletilebilirliği garanti eder

Belgeler ve demo

  • Resmî belgeler, kurulum kılavuzu, API referansı ve örnekler için https://www.embedpdf.com adresine bakılabilir
  • Canlı demo üzerinde doğrudan PDF dosyası yükleyebilir veya örnek belgelerle özellikleri deneyebilirsiniz
Reklam

Açık kaynak ve lisans

  • MIT lisansı ile kaynak kod özgürce kullanılabilir ve katkı yapılabilir
  • PDFium içerir ve bu bölüm Apache License 2.0 kapsamındadır

Topluluk ve katkı

  • Açık kaynak topluluğuna katılım ve çeşitli katkılar memnuniyetle karşılanır
  • Contributing kılavuzu ve GitHub Discussions üzerinden geliştirici iletişimi mümkündür

Projenin önemi ve fark yaratan yönleri

  • Mevcut ticari PDF görüntüleyicilerine alternatif olarak, herkesin kurum içi sistemlere veya SaaS çözümlerine PDF görüntüleyici özelliğini kolayca eklemesini sağlar
  • Çeşitli framework’lerle yüksek uyumluluk ve modern, modüler yapı öne çıkan farklarıdır
  • Redaction gibi ileri düzey PDF işleme özelliklerini açık kaynak olarak sunan nadir örneklerden biridir

1 yorum

 
GN⁺ 2025-08-16
Hacker News görüşleri
  • Aslında önemli iş PDFium'da yapılıyor; PDFium, Google'ın Foxit'ten devraldıktan sonra doğrudan geliştirmeyi sürdürdüğü ve şu anda Chrome'da kullanılan bir proje (şu an epey tartışılan çalışmayı küçümsediğimden değil, sadece bunun tamamen sıfırdan yazılmış bir PDF ayrıştırıcısı olmadığını belirtmek istiyorum)
    • Birçok PDF görüntüleyicinin, ticari ürünler dahil, PDFium tabanlı olduğunu düşünüyorum
  • Mozilla PDF.js varken bu projenin neden geliştirildiğini merak ediyorum https://github.com/mozilla/pdf.js (bu bir eleştiri değil; zaten var olan bir şeyi yeniden yapmanın pek çok nedeni olabiliyor, o yüzden sadece merak ediyorum)
    • Ana hedef, geliştiricilerin web sitelerine kolayca entegre edebileceği bir PDF görüntüleyici oluşturmaktı; PDF.js bazı kullanım senaryolarında özelleştirme ve genişletme açısından zor veya karmaşık olabiliyor
    • PDF işaretleme (açıklamalar, şekiller, yorumlar) gerektiğinde ya bunu kendiniz kurmanız ya da oldukça pahalı abonelikli PDF editörlerine yönelmeniz gerekiyor; gerçekten de Apryse entegrasyonu yapan ekiplerin yalnızca basit PDF düzenleme desteği için bile çok yüksek maliyet üstlendiğini duydum
    • Hızlıca bakınca bile açıklama yorumları gibi mevcut ürünlerden farklı işlevler olduğu görülebiliyor
    • Demo dokümanını iPad veya iPhone'da açarsanız Print Preview özelliğinin yalnızca masaüstü cihazlarda çalıştığını görebilirsiniz
    • 402 açık issue'a bakınca PDF'nin ne kadar karmaşık olduğunu ve tüm bu özellikleri ele almanın ne kadar emek gerektirdiğini tahmin edebilirsiniz
  • Geçmişte PDF görüntüleyici gömülü bir yan proje yapmıştım; ilk sürümde pdf.js kullandım ama hızlı zoom yaparken takılıyordu ve odağı korumak zordu. Bu yüzden C++ pdfium ve Metal rendering ile kendim uyguladım; demo videosunda görülebilir. Tiling yaklaşımını uygulayarak bellek ve performans arasında denge kurdum. pdfium'un WebAssembly'de bile bu kadar performanslı olacağını bilmiyordum; açıkçası UI geliştirmek de C++'tan çok web tarafında daha rahat
    • Dürüst olmak gerekirse demo çok daha hızlı ve akıcı hissettiriyor; zoom davranışı gerçekten çok pürüzsüz uygulanmış. Bunu görünce benim de yeniden geliştirmeye dalıp performansı iyileştirmeyi denemek istediğim hissi oluştu
  • pdf.js kullanıyorum (17MB, 158 sayfa, çok sayıda görsel, Windows ortamı) ve test ederken yaşadığım sorunları paylaşmak istiyorum
    • Linkler çalışmıyor
    • Yer imleri görünüyor ama çalışmıyor
    • Firefox'ta metin seçilemiyor
    • Chrome'da orta tıklama (scroll amaçlı) metin seçimine dönüşüyor
    • pdf.js'te scroll fena değil ama bu üründe scroll sırasında ekran yüzlerce ila bin milisaniye boyunca bulanık görünüyor ve kalite ciddi biçimde düşüyor; End tuşu gibi yöntemlerle birkaç sayfa birden atlanınca sadece beyaz ekran görünüyor
    • FF'de yukarı/aşağı, page up/down, home/end çalışmıyor (sol/sağ çalışıyor)
  • Kısaca test ettim; Firefox'ta açıklama özelliği hiç çalışmadı ama Chrome'da underline, highlight gibi tüm açıklama işlevlerinin normal çalıştığını doğruladım
    • Firefox'ta açıklamaları henüz test etmemiştim, haber verdiğiniz için teşekkürler; Chrome'da sorunsuz çalışmasına sevindim, yakında kontrol edeceğim
  • Gömülü outline'ı (ana hat/açıklama) düzenlemeyi destekleyip desteklemediğini merak ediyorum; PDF görüntüleyici/editörlerde hep en çok eksikliğini hissettiğim özellik bu, outline'sız bir PDF aldığımda her seferinde buna ihtiyaç duyuyorum
  • Linux + Firefox kombinasyonunda demoda açıklama/redaction araçları hiç çalışmıyor; buna karşılık Chromium'da aynı makinede düzgün çalışıyor
    • Firefox'ta oluşan sorunu az önce düzelttim; artık Linux + Firefox ve Chromium'un ikisinde de açıklama ve redaction işlevleri düzgün çalışıyor
  • Dokümantasyon da harika ve headless React kütüphanesi konsepti özellikle hoşuma gitti; özel UI ve işlevleri kolayca ekleyebiliyorsunuz. Belirli terimleri otomatik olarak highlight/underline edip tıklama ya da hover anında özel bir component göstermek ne kadar zor diye soruyorum
    • Bunu yapmak oldukça kolay; böyle bir işlev zaten uygulanmış durumda. AnnotationLayer içinde selectionMenu ve özel component'leri doğrudan render edebilirsiniz. Daha derine inmek isterseniz Discord kanalı üzerinden sorabilirsiniz
  • Ürün etkileyici görünüyor; merak ettiğim şey, böyle özellik bakımından zengin ücretsiz bir PDF görüntüleyicinin geliştirilmesini nasıl sürdüreceğiniz. Kurumsal özellikler, PDF hosting ya da başka gelir modelleri planlıyor musunuz?
    • Bu soruların hepsine yanıt 'evet'. İstemci tarafındaki PDF görüntüleyici ücretsiz + MIT lisanslı kalacak; ancak PDF hosting ve kurumsal analiz/erişim kontrolü gibi ek işlevler ücretli hizmet olarak sunulacak
  • Genel olarak iyi çalışıyor ama redaction aracını görüntüleme moduna geçirirken (kırmızı çizgi etkinken) redaction hâlâ etkin kalıyor ve bu yüzden scroll edilemiyordu; sayfayı yenileyince düzeldi
    • Güzel geri bildirim, yakında düzelteceğim. Mobilde hassas alan seçimini kolaylaştırmak için redaction modunda scroll'un kapalı olması kasıtlı bir davranış. Ancak View sekmesine geçildiğinde redaction modu mutlaka kapanmalı; bunu fark ettiğiniz için teşekkürler