EmbedPDF ซึ่งเป็นโปรแกรมดู PDF แบบ JavaScript โอเพนซอร์สตัวใหม่ ได้เปิดตัวพร้อมคำมั่นสัญญาเรื่องความเข้ากันได้แบบไม่ขึ้นกับเฟรมเวิร์กและประสิทธิภาพที่ราบรื่น โครงการนี้สร้างขึ้นบนเอนจิน PDFium ของ Google และเผยแพร่ภายใต้ลิขสิทธิ์ MIT โดยมีเป้าหมายเพื่อให้เป็นทางเลือกที่ทันสมัยสำหรับโปรแกรมดู PDF ที่มีอยู่เช่น PDF.js ของ Mozilla อย่างไรก็ตาม การทดสอบเบื้องต้นจากชุมชนได้เผยให้เห็นปัญหาทางเทคนิคและกฎหมายหลายประการที่นักพัฒนาควรทราบ
การเปรียบเทียบคุณสมบัติหลัก
คุณสมบัติ | EmbedPDF | PDF.js |
---|---|---|
เอนจิน | PDFium (WebAssembly) | Custom JavaScript |
ใบอนุญาต | MIT + Apache 2.0 | Apache 2.0 |
การใส่หมายเหตุ | รองรับเต็มรูปแบบ (ไฮไลต์, หมึก, การปิดบัง) | จำกัด |
การรองรับเบราว์เซอร์ | Chrome ✓, Firefox ✗ | ทุกเบราว์เซอร์ |
ประสิทธิภาพ | สูง (เหมือนแอปพลิเคชันดั้งเดิม) | ปานกลาง |
การรองรับเฟรมเวิร์ก | React, Vue, Svelte, Vanilla JS | ทุกเฟรมเวิร์ก |
ปัญหาความเข้ากันได้กับ Firefox เริ่มปรากฏ
ผู้ใช้ค้นพบอย่างรวดเร็วว่าฟีเจอร์การใส่หมายเหตุของ EmbedPDF ไม่ทำงานอย่างถูกต้องใน Firefox แม้ว่าจะทำงานได้อย่างถูกต้องใน Chrome สาเหตุหลักดูเหมือนจะเป็น JavaScript error ที่ TouchEvent ไม่ได้ถูกกำหนดใน Firefox ทำให้ระบบการใส่หมายเหตุเสียหายโดยสิ้นเชิง ปัญหาความเข้ากันได้ของเบราว์เซอร์นี้น่ากังวลเป็นพิเศษสำหรับนักพัฒนาที่ต้องการการสนับสนุนข้ามเบราว์เซอร์สำหรับแอปพลิเคชันของพวกเขา
ปัญหานี้ขยายไปไกลกว่าความล้มเหลวของฟีเจอร์ธรรมดา ในบางกรณี การสลับระหว่างโหมดการปิดบังข้อมูลและโหมดการดูทำให้เครื่องมือการปิดบังข้อมูลยังคงทำงานอยู่ ทำให้ไม่สามารถเลื่อนดูเอกสารได้จนกว่าจะรีเฟรชหน้า
ปัญหาทางเทคนิคที่ระบุได้
- ข้อผิดพลาด TouchEvent ใน Firefox:
Uncaught ReferenceError: TouchEvent is not defined
- บั๊กการเปลี่ยนโหมด: เครื่องมือ redaction ยังคงทำงานอยู่เมื่อเปลี่ยนไปใช้โหมดดู
- ความเข้ากันได้ของ Annotation: คำอธิบายประกอบ PDF ที่มีอยู่บางส่วนอาจแสดงผลไม่ถูกต้อง
- การออกใบอนุญาตเริ่มต้น: ข้อกำหนดการแจกจ่ายต่อของ Apache 2.0 ไม่ได้รับการปฏิบัติตามในตอนแรก
ข้อได้เปรียบด้านประสิทธิภาพเหนือโซลูชันที่มีอยู่
แม้จะมีปัญหาความเข้ากันได้ EmbedPDF แสดงคุณลักษณะด้านประสิทธิภาพที่น่าประทับใจซึ่งทำให้แตกต่างจากคู่แข่ง โปรแกรมดูจัดการการซูมได้อย่างราบรื่น แก้ไขหนึ่งในข้อร้องเรียนทั่วไปเกี่ยวกับ PDF.js ที่การซูมอย่างรวดเร็วอาจรู้สึกช้าและสูญเสียตำแหน่งโฟกัส การเพิ่มประสิทธิภาพนี้มาจากการใช้ประโยชน์จาก PDFium ที่คอมไพล์เป็น WebAssembly ซึ่งให้ความเร็วใกล้เคียงกับ native ในเว็บเบราว์เซอร์
โครงการนี้รวมฟีเจอร์ขั้นสูงเช่นการปิดบังข้อมูลจริงที่เนื้อหาถูกลบออกจากเอกสารจริงๆ การเลื่อนแบบเสมือนสำหรับไฟล์ขนาดใหญ่ และการสนับสนุนการใส่หมายเหตุอย่างครอบคลุมรวมถึงการไฮไลต์ โน้ตแบบติด และการใส่หมายเหตุด้วยหมึก
ข้อกังวลเรื่องการปฏิบัติตามลิขสิทธิ์ถูกยกขึ้น
สมาชิกชุมชนระบุปัญหาทางกฎหมายที่อาจเกิดขึ้นกับการตั้งค่าลิขสิทธิ์ของโครงการ ในขณะที่ EmbedPDF เองใช้ลิขสิทธิ์ MIT แต่มันรวมเอนจิน PDFium ของ Google ซึ่งได้รับลิขสิทธิ์ภายใต้ Apache 2.0 ในตอนแรก โครงการไม่ได้ปฏิบัติตามข้อกำหนดการแจกจ่ายซ้ำของ Apache 2.0 อย่างถูกต้อง แม้ว่านักพัฒนาจะได้แก้ไขข้อกังวลนี้ด้วยเอกสารที่อัปเดตแล้ว
ประเด็นดี คุณพูดถูกที่ PDFium เป็น Apache 2.0 ผมได้อัปเดตโครงการเพื่อปฏิบัติตามข้อกำหนดการแจกจ่ายซ้ำแล้ว
สิ่งนี้เน้นย้ำถึงความซับซ้อนของการจัดการลิขสิทธิ์หลายตัวในโครงการโอเพนซอร์ส โดยเฉพาะเมื่อรวมลิขสิทธิ์แบบอนุญาตเช่น MIT กับลิขสิทธิ์แบบใกล้เคียง copyleft เช่น Apache 2.0
การตอบสนองของนักพัฒนาและแผนอนาคต
นักพัฒนาของโครงการได้ตอบสนองต่อความคิดเห็นของชุมชนอย่างแข็งขัน ยอมรับปัญหาความเข้ากันได้ของเบราว์เซอร์และทำงานเพื่อแก้ไข ความพยายามในการพัฒนาเป็นเวลาเจ็ดเดือนแสดงให้เห็นถึงศักยภาพ แต่ปัญหา Firefox และการละเลยลิขสิทธิ์ในตอนแรกบ่งชี้ว่าโครงการอาจต้องการการทดสอบเพิ่มเติมก่อนการใช้งานจริง
ในขณะที่ EmbedPDF เสนอการปรับปรุงประสิทธิภาพที่น่าสนใจเหนือโซลูชันที่มีอยู่ นักพัฒนาควรประเมินข้อกำหนดการสนับสนุนเบราว์เซอร์และผลกระทบด้านลิขสิทธิ์อย่างรอบคอบก่อนการนำไปใช้ ผู้ดูแลที่ตอบสนองของโครงการและชุดฟีเจอร์ที่เติบโตบ่งชี้ถึงศักยภาพในการแก้ไขข้อจำกัดปัจจุบัน
อ้างอิง: embedpdf/embed-pdf-viewer