25 poin oleh GN⁺ 2025-08-16 | 1 komentar | Bagikan ke WhatsApp
  • EmbedPDF adalah penampil PDF open-source yang dapat dengan mudah diintegrasikan ke proyek JavaScript mana pun
  • Memiliki kompatibilitas dengan berbagai framework frontend seperti React, Vue, Svelte, Preact, dan Vanilla JS
  • Menyertakan fitur kaya seperti anotasi, highlight, penghapusan teks asli (redaction), pencarian, zoom, dan rotasi
  • Mendukung peningkatan performa dan ekstensibilitas melalui virtual scrolling dan arsitektur plugin
  • Dengan lisensi MIT, siapa pun bebas menggunakannya dan berkontribusi

Gambaran umum proyek penampil PDF open-source EmbedPDF

  • EmbedPDF adalah penampil PDF open-source yang independen dari framework dan dapat disematkan dengan mudah ke proyek JavaScript mana pun
  • Menggunakan lisensi MIT, serta memiliki keunggulan kompatibilitas dengan berbagai framework frontend modern seperti React, Vue, Svelte, Preact, dan Vanilla JS
  • Menawarkan pengalaman membaca modern dan API yang ramah pengembang

Fitur utama

  • Dukungan anotasi: menyediakan berbagai fitur anotasi seperti highlight, sticky note, free text, dan ink
  • Redaction sungguhan: saat fitur redaction digunakan, konten asli di dalam dokumen benar-benar dihapus sepenuhnya sebagai fitur keamanan
  • Menyertakan fungsi inti pengelolaan PDF seperti pencarian, pemilihan teks, zoom, dan rotasi
  • Dengan scrolling virtual yang halus, dokumen berukuran besar pun dapat dibuka tanpa penurunan performa
  • Melalui arsitektur berbasis plugin dan plugin yang tree-shakeable, kode yang tidak diperlukan dapat dikecualikan sekaligus menjamin kemudahan ekstensi

Dokumentasi dan demo

  • Dokumentasi resmi, panduan instalasi, referensi API, dan contoh tersedia di https://www.embedpdf.com
  • Di demo langsung, Anda dapat mengunggah file PDF sendiri atau mencoba fitur dengan dokumen contoh

Open source dan lisensi

  • Dengan lisensi MIT, kode sumber dapat digunakan secara bebas dan kontribusi terbuka untuk siapa saja
  • Menyertakan PDFium, dan bagian ini mengikuti Apache License 2.0

Komunitas dan kontribusi

  • Partisipasi komunitas open-source dan berbagai bentuk kontribusi sangat disambut
  • Komunikasi antar pengembang dapat dilakukan melalui panduan Contributing dan Github Discussions

Pentingnya proyek dan pembeda utamanya

  • Sebagai alternatif bagi penampil PDF komersial yang sudah ada, siapa pun dapat dengan mudah menerapkan fitur penampil PDF untuk sistem internal maupun SaaS
  • Kompatibilitas tinggi dengan berbagai framework serta struktur modern dan modular menjadi pembeda utamanya
  • Ini adalah contoh yang jarang ditemukan di open source yang menyediakan fitur pemrosesan PDF tingkat lanjut seperti redaction

1 komentar

 
GN⁺ 2025-08-16
Komentar Hacker News
  • Pekerjaan yang benar-benar penting sebenarnya dilakukan di PDFium; dijelaskan bahwa PDFium adalah proyek yang Google akuisisi dari Foxit lalu terus dikembangkan sendiri, dan saat ini digunakan di Chrome (bukan untuk meremehkan pekerjaan yang sedang banyak dibahas ini, hanya ingin menekankan bahwa ini bukan parser PDF yang ditulis sepenuhnya dari nol)
    • Saya rasa banyak PDF viewer, termasuk produk komersial, dibangun di atas PDFium
  • Saya penasaran kenapa proyek ini dikembangkan padahal sudah ada Mozilla PDF.js https://github.com/mozilla/pdf.js (bukan kritik, saya memang penasaran karena ada banyak alasan untuk membuat ulang sesuatu yang sudah ada)
    • Tujuan utamanya adalah membuat PDF viewer yang mudah diintegrasikan developer ke situs web mereka; pada beberapa use case, PDF.js sulit atau rumit untuk dikustomisasi dan diperluas
    • Jika butuh PDF markup (anotasi, bentuk, komentar), pilihannya biasanya harus membangun sendiri atau memakai editor PDF berlangganan yang sangat mahal; saya dengar tim yang mengintegrasikan Apryse pun merasa biaya hanya untuk mendukung pengeditan PDF sederhana sudah sangat berat
    • Sekilas saja sudah terlihat ada fitur seperti komentar anotasi yang membedakannya dari produk-produk yang sudah ada
    • Jika membuka dokumen demo di iPad atau iPhone, akan terlihat bahwa fitur Print Preview hanya berfungsi di perangkat desktop
    • Dengan melihat 402 open issue, kita bisa membayangkan betapa kompleksnya PDF dan besarnya upaya yang dibutuhkan untuk menangani semua fiturnya
  • Saya pernah membuat side project dengan PDF viewer tertanam; versi pertama memakai pdf.js, tetapi saat zoom cepat terasa tersendat dan sulit mempertahankan fokus, jadi saya membuatnya sendiri dengan C++ pdfium dan rendering Metal. Bisa dilihat di video demo; saya menerapkan pendekatan tiling untuk menyeimbangkan memori dan performa. Saya tidak menyangka pdfium bisa secepat ini juga di WebAssembly, dan sejujurnya mengembangkan UI di web terasa lebih nyaman daripada di C++
    • Sejujurnya, demo itu terasa jauh lebih cepat dan mulus; perilaku zoom-nya benar-benar diimplementasikan dengan sangat halus. Melihat ini membuat saya ingin terjun lagi dan mencoba meningkatkan performa proyek saya
  • Saya sedang memakai pdf.js (17MB, 158 halaman, banyak gambar, lingkungan Windows) dan ingin berbagi masalah yang saya temui saat pengujian
    • Tautan tidak berfungsi
    • Bookmark terlihat tetapi tidak berfungsi
    • Di Firefox, teks tidak bisa dipilih
    • Di Chrome, middle click (untuk scrolling) malah memicu pemilihan teks
    • Di pdf.js scrolling terasa baik, tetapi di produk ini saat scrolling layar terlihat buram selama ratusan hingga seribu milidetik dan penurunan kualitasnya cukup parah; jika lompat beberapa halaman dengan tombol End dan semacamnya, yang terlihat hanya layar putih
    • Di FF, tombol atas/bawah, page up/down, home/end tidak berfungsi (kiri/kanan berfungsi)
  • Saya sudah mengujinya sebentar, dan di Firefox fitur anotasi sama sekali tidak berfungsi, tetapi di Chrome saya memastikan semua fitur anotasi seperti underline dan highlight berjalan normal
    • Pesan balasan yang mengucapkan terima kasih karena belum sempat menguji anotasi di Firefox; syukurlah di Chrome berjalan tanpa masalah, dan akan segera diperiksa
  • Saya penasaran apakah ini mendukung pengeditan outline (bookmark) tertanam; ini selalu menjadi fitur yang paling saya rindukan di PDF viewer/editor, dan setiap kali menerima PDF tanpa outline saya merasa fitur ini sangat dibutuhkan
  • Pada kombinasi Linux + Firefox, alat anotasi/redaction di demo sama sekali tidak berfungsi, sementara di Chromium pada mesin yang sama semuanya berjalan baik
    • Masalah yang terjadi di Firefox baru saja diperbaiki, dan sekarang fitur anotasi serta redaction berfungsi normal baik di Linux + Firefox maupun Chromium
  • Dokumentasinya juga sangat bagus, dan saya sangat menyukai konsep library React headless-nya; UI dan fitur kustom bisa ditambahkan dengan mudah. Seberapa sulit untuk otomatis highlight/underline istilah tertentu lalu menampilkan komponen kustom saat diklik atau di-hover?
    • Itu bisa dilakukan dengan sangat mudah, fungsinya sudah ada. Di AnnotationLayer Anda bisa langsung me-render selectionMenu dan komponen kustom. Jika ingin menggali lebih jauh, silakan tanya di channel Discord
  • Produknya terlihat mengesankan; saya penasaran bagaimana rencananya mempertahankan pengembangan PDF viewer gratis yang sekaya fitur ini, apakah ada rencana fitur enterprise, PDF hosting, atau model monetisasi lain?
    • Jawabannya untuk semuanya adalah “ya”; PDF viewer sisi klien akan tetap gratis dengan lisensi MIT, tetapi fitur tambahan seperti PDF hosting serta analytics dan access control untuk enterprise akan disediakan sebagai layanan berbayar
  • Secara keseluruhan berjalan baik, tetapi saat alat redaction dialihkan ke mode view (ketika garis merah masih aktif), redaction tetap aktif sehingga tidak bisa scrolling. Refresh menyelesaikannya
    • Ini feedback yang bagus dan akan segera diperbaiki; di perangkat mobile, nonaktifnya scrolling dalam mode redaction memang perilaku yang disengaja demi kemudahan memilih area dengan presisi. Namun saat berpindah ke tab view, mode redaction seharusnya selalu keluar. Terima kasih sudah menemukannya