EmbedPDF Menghadapi Isu Keserasian Firefox dan Kebimbangan Pelesenan Walaupun Prestasi Kukuh

Pasukan Komuniti BigGo
EmbedPDF Menghadapi Isu Keserasian Firefox dan Kebimbangan Pelesenan Walaupun Prestasi Kukuh

EmbedPDF , sebuah pemapar PDF JavaScript sumber terbuka yang baharu, telah dilancarkan dengan janji keserasian agnostik rangka kerja dan prestasi yang lancar. Dibina atas enjin PDFium Google dan dikeluarkan di bawah lesen MIT , projek ini bertujuan untuk menyediakan alternatif moden kepada pemapar PDF sedia ada seperti PDF.js Mozilla . Walau bagaimanapun, ujian komuniti awal telah mendedahkan beberapa isu teknikal dan undang-undang yang perlu diketahui oleh pembangun.

Perbandingan Ciri-ciri Utama

Ciri EmbedPDF PDF.js
Enjin PDFium (WebAssembly) Custom JavaScript
Lesen MIT + Apache 2.0 Apache 2.0
Anotasi Sokongan penuh (serlah, dakwat, redaksi) Terhad
Sokongan Pelayar Chrome ✓, Firefox ✗ Universal
Prestasi Tinggi (seperti natif) Sederhana
Sokongan Rangka Kerja React, Vue, Svelte, Vanilla JS Universal

Masalah Keserasian Firefox Muncul

Pengguna dengan cepat mendapati bahawa ciri anotasi EmbedPDF tidak berfungsi dengan betul dalam Firefox , walaupun berfungsi dengan betul dalam Chrome . Punca masalah nampaknya adalah ralat JavaScript di mana TouchEvent tidak ditakrifkan dalam Firefox , menyebabkan sistem anotasi rosak sepenuhnya. Isu keserasian pelayar ini amat membimbangkan bagi pembangun yang memerlukan sokongan merentas pelayar untuk aplikasi mereka.

Masalah ini melangkaui kegagalan ciri mudah. Dalam sesetengah kes, bertukar antara mod redaksi dan paparan menyebabkan alat redaksi kekal aktif, menjadikannya mustahil untuk menatal melalui dokumen sehingga halaman dimuat semula.

Isu Teknikal yang Dikenal Pasti

  • Ralat TouchEvent Firefox: Uncaught ReferenceError: TouchEvent is not defined
  • Pepijat Pertukaran Mod: Alat redaksi kekal aktif semasa beralih ke mod paparan
  • Keserasian Anotasi: Sesetengah anotasi PDF sedia ada mungkin tidak dipaparkan dengan betul
  • Pelesenan Awal: Keperluan pengedaran semula Apache 2.0 tidak dipenuhi pada mulanya

Kelebihan Prestasi Berbanding Penyelesaian Sedia Ada

Walaupun terdapat isu keserasian, EmbedPDF menunjukkan ciri prestasi yang mengagumkan yang membezakannya daripada pesaing. Pemapar mengendalikan operasi zum dengan lancar, menangani salah satu aduan biasa tentang PDF.js di mana zum pantas boleh terasa perlahan dan kehilangan kedudukan fokus. Peningkatan prestasi ini datang daripada memanfaatkan PDFium yang dikompil kepada WebAssembly , yang memberikan kelajuan hampir asli dalam pelayar web.

Projek ini termasuk ciri canggih seperti redaksi sebenar di mana kandungan benar-benar dikeluarkan daripada dokumen, penatalan maya untuk fail besar, dan sokongan anotasi komprehensif termasuk sorotan, nota melekit, dan anotasi dakwat.

Kebimbangan Pematuhan Pelesenan Dibangkitkan

Ahli komuniti mengenal pasti isu undang-undang yang berpotensi dengan persediaan pelesenan projek. Walaupun EmbedPDF sendiri menggunakan lesen MIT , ia menggabungkan enjin PDFium Google yang dilesenkan di bawah Apache 2.0 . Pada mulanya, projek tidak mematuhi keperluan pengedaran semula Apache 2.0 dengan betul, walaupun pembangun sejak itu telah menangani kebimbangan ini dengan dokumentasi yang dikemas kini.

Perkara yang baik, anda betul bahawa PDFium adalah Apache 2.0 . Saya telah mengemas kini projek untuk mematuhi keperluan pengedaran semula.

Ini menyerlahkan kerumitan menguruskan berbilang lesen dalam projek sumber terbuka, terutamanya apabila menggabungkan lesen permisif seperti MIT dengan lesen berkaitan copyleft seperti Apache 2.0 .

Respons Pembangun dan Rancangan Masa Depan

Pembangun projek telah aktif merespons maklum balas komuniti, mengakui isu keserasian pelayar dan bekerja untuk pembetulan. Usaha pembangunan selama tujuh bulan menunjukkan potensi, tetapi masalah Firefox dan pengabaian pelesenan awal mencadangkan projek mungkin memerlukan lebih banyak ujian sebelum penggunaan pengeluaran.

Walaupun EmbedPDF menawarkan peningkatan prestasi yang menarik berbanding penyelesaian sedia ada, pembangun harus menilai dengan teliti keperluan sokongan pelayar dan implikasi pelesenan sebelum penggunaan. Penyelenggara projek yang responsif dan set ciri yang berkembang menunjukkan potensi untuk menangani batasan semasa.

Rujukan: embedpdf/embed-pdf-viewer