EmbedPDF , sebuah penampil PDF JavaScript open-source baru, telah diluncurkan dengan janji kompatibilitas framework-agnostic dan performa yang mulus. Dibangun di atas mesin PDFium Google dan dirilis di bawah lisensi MIT , proyek ini bertujuan menyediakan alternatif modern untuk penampil PDF yang sudah ada seperti PDF.js milik Mozilla . Namun, pengujian komunitas awal telah mengungkap beberapa masalah teknis dan hukum yang perlu diketahui oleh para pengembang.
Perbandingan Fitur Utama
Fitur | EmbedPDF | PDF.js |
---|---|---|
Engine | PDFium (WebAssembly) | Custom JavaScript |
Lisensi | MIT + Apache 2.0 | Apache 2.0 |
Anotasi | Dukungan penuh (highlight, ink, redaction) | Terbatas |
Dukungan Browser | Chrome ✓, Firefox ✗ | Universal |
Performa | Tinggi (seperti native) | Sedang |
Dukungan Framework | React, Vue, Svelte, Vanilla JS | Universal |
Masalah Kompatibilitas Firefox Muncul
Pengguna dengan cepat menemukan bahwa fitur anotasi EmbedPDF tidak bekerja dengan baik di Firefox , meskipun berfungsi dengan benar di Chrome . Akar penyebabnya tampaknya adalah kesalahan JavaScript di mana TouchEvent tidak terdefinisi di Firefox , yang membuat sistem anotasi rusak total. Masalah kompatibilitas browser ini sangat mengkhawatirkan bagi pengembang yang membutuhkan dukungan lintas browser untuk aplikasi mereka.
Masalah ini meluas melampaui kegagalan fitur sederhana. Dalam beberapa kasus, beralih antara mode redaksi dan tampilan menyebabkan alat redaksi tetap aktif, membuat tidak mungkin untuk menggulir dokumen sampai halaman disegarkan.
Masalah Teknis yang Teridentifikasi
- Error TouchEvent Firefox:
Uncaught ReferenceError: TouchEvent is not defined
- Bug Pergantian Mode: Tool redaksi tetap aktif saat beralih ke mode tampilan
- Kompatibilitas Anotasi: Beberapa anotasi PDF yang sudah ada mungkin tidak ditampilkan dengan benar
- Lisensi Awal: Persyaratan redistribusi Apache 2.0 tidak terpenuhi pada awalnya
Keunggulan Performa Dibanding Solusi yang Ada
Meski ada masalah kompatibilitas, EmbedPDF menunjukkan karakteristik performa yang mengesankan yang membedakannya dari kompetitor. Penampil ini menangani operasi zoom dengan mulus, mengatasi salah satu keluhan umum tentang PDF.js di mana zoom cepat bisa terasa lambat dan kehilangan posisi fokus. Peningkatan performa ini berasal dari pemanfaatan PDFium yang dikompilasi ke WebAssembly , yang memberikan kecepatan mendekati native di browser web.
Proyek ini mencakup fitur-fitur canggih seperti redaksi sejati di mana konten benar-benar dihapus dari dokumen, scrolling tervirtualisasi untuk file besar, dan dukungan anotasi komprehensif termasuk highlight, sticky notes, dan anotasi tinta.
Kekhawatiran Kepatuhan Lisensi Muncul
Anggota komunitas mengidentifikasi masalah hukum potensial dengan pengaturan lisensi proyek. Sementara EmbedPDF sendiri menggunakan lisensi MIT , ia menggabungkan mesin PDFium Google yang dilisensikan di bawah Apache 2.0 . Awalnya, proyek ini tidak mematuhi persyaratan redistribusi Apache 2.0 dengan benar, meskipun pengembang telah mengatasi kekhawatiran ini dengan dokumentasi yang diperbarui.
Poin yang bagus, Anda benar bahwa PDFium adalah Apache 2.0 . Saya telah memperbarui proyek untuk mematuhi persyaratan redistribusi.
Ini menyoroti kompleksitas mengelola beberapa lisensi dalam proyek open-source, terutama ketika menggabungkan lisensi permisif seperti MIT dengan lisensi yang mirip copyleft seperti Apache 2.0 .
Respons Pengembang dan Rencana Masa Depan
Pengembang proyek telah aktif merespons umpan balik komunitas, mengakui masalah kompatibilitas browser dan bekerja pada perbaikan. Upaya pengembangan selama tujuh bulan menunjukkan potensi, tetapi masalah Firefox dan kelalaian lisensi awal menunjukkan bahwa proyek ini mungkin memerlukan lebih banyak pengujian sebelum penggunaan produksi.
Sementara EmbedPDF menawarkan peningkatan performa yang menarik dibanding solusi yang ada, pengembang harus dengan hati-hati mengevaluasi persyaratan dukungan browser dan implikasi lisensi sebelum adopsi. Maintainer proyek yang responsif dan set fitur yang berkembang menunjukkan potensi untuk mengatasi keterbatasan saat ini.
Referensi: embedpdf/embed-pdf-viewer