ไลบรารี JavaScript ฟรีสำหรับการแสดงผลเอกสาร EPUB
Open Source JavaScript Library เพื่อเข้าถึงและแสดงเอกสาร EPUB ในเบราว์เซอร์และในอุปกรณ์อื่นๆ
กำลังมองหาไลบรารีที่ใช้งานง่ายที่สามารถแสดงเอกสาร EPUB ภายในเบราว์เซอร์ได้เช่นเดียวกับในอุปกรณ์อื่นๆ มากมาย Epub.js เป็นไลบรารี JavaScript แบบโอเพ่นซอร์สที่มีประสิทธิภาพมากซึ่งช่วยให้โปรแกรมเมอร์และแอปพลิเคชันเข้าถึงและแสดงผลเอกสาร EPUB ในเบราว์เซอร์ได้อย่างง่ายดาย EPUB เป็นรูปแบบไฟล์ EBook ยอดนิยมที่ผู้เผยแพร่และผู้บริโภคใช้กันอย่างแพร่หลาย ได้รับการสนับสนุนโดย e-reader และซอฟต์แวร์แอปพลิเคชันจำนวนมากทั่วโลกอินเทอร์เน็ต และสามารถแปลงเป็นรูปแบบอื่นๆ ได้มากมาย (เช่น PDF, Mobi และ iBooks)
Epub.js มีประโยชน์อย่างมากสำหรับการจัดการ eBook เนื่องจากมีส่วนต่อประสานสำหรับฟังก์ชัน eBook ทั่วไป เช่น การเรนเดอร์ การคงอยู่ และการแบ่งหน้า เป็นต้น มีวิธีการเรนเดอร์ที่สำคัญอยู่หลายส่วน เช่น วิธีเริ่มต้นจะแสดงทีละส่วนเท่านั้น สามารถใช้โปรแกรมจัดการต่อเนื่องเพื่อแสดงส่วนได้มากเท่าที่จำเป็นเพื่อให้เต็มหน้าจอ และโหลดส่วนถัดไปไว้ล่วงหน้านอกจอ ส่วนแทนที่โฟลว์ขึ้นอยู่กับการตั้งค่าใน OPF ค่าเริ่มต้นเป็นเลขหน้า
ไลบรารีได้รวมคุณสมบัติที่สำคัญหลายประการสำหรับการทำงานกับเอกสาร EPUB เช่น การค้นหาภายในเอกสาร EPUB ทั้งหมด การค้นหาบทปัจจุบัน การปัดเพื่อเปลี่ยนหน้า การสร้างและการบันทึกตำแหน่ง การเปลี่ยนหน้าด้วยปุ่มลูกศร และอื่นๆ อีกมากมาย
เริ่มต้นใช้งาน Epub.js
Epub.js พร้อมใช้งานในเวลา 12:00 น. ก่อนอื่นคุณต้องติดตั้ง node.js แล้วจึงติดตั้ง Epub.js บนเครื่องของคุณได้ โปรดใช้คำสั่งต่อไปนี้เพื่อการติดตั้งที่ราบรื่น
ติดตั้ง Epub.js ผ่าน npm
npm install
คุณสามารถติดตั้งด้วยตนเองได้ ดาวน์โหลดไฟล์รุ่นล่าสุดโดยตรงจากที่เก็บ GitHub
แสดงผลเอกสาร EPUB ด้วยวิธีต่างๆ ผ่าน JavaScript
ไลบรารี Epub.js แบบโอเพ่นซอร์สช่วยให้โปรแกรมเมอร์ซอฟต์แวร์แสดงเอกสาร EPUB ได้หลากหลายวิธีภายในแอปพลิเคชัน JavaScript ของตนเอง ไลบรารีนำเสนอวิธีการเรนเดอร์ที่แตกต่างกันสองวิธี ได้แก่ ค่าเริ่มต้นและแบบต่อเนื่อง วิธีการแสดงผลเริ่มต้นสามารถใช้เพื่อแสดงส่วนเดียวในแต่ละครั้ง ในทางกลับกัน สามารถใช้โหมดต่อเนื่องเพื่อแสดงหลายส่วนตามความต้องการเพื่อให้เต็มหน้าจอและโหลดส่วนถัดไปไว้ล่วงหน้านอกจอ
แสดงผลเอกสาร EPUB ด้วยวิธีต่างๆ ผ่าน Java Library
// Default Rendering
book.renderTo("area", { method: "default", width: "100%", height: "100%" });
// Continuous Rendering
book.renderTo("area", { method: "continuous", width: "100%", height: "100%" });
//Flow Overrides Paginated
book.renderTo("area", { flow: "paginated", width: "900", height: "600" });
//Scrolled:
book.renderTo("area", { flow: "scrolled-doc" });
ใช้ Hooks ในเอกสาร EPUB ในแอป JavaScript
ไลบรารี Epub.js ได้รวมคุณสมบัติที่มีประโยชน์มากซึ่งคล้ายกับปลั๊กอินสำหรับการโต้ตอบและจัดการเนื้อหาของหนังสือ ห้องสมุดจัดกิจกรรมที่คุณสามารถติดได้ง่าย ตัวอย่างเช่น ผู้ใช้สามารถโหลดวิดีโอได้โดยตรงจากลิงก์ YouTube ก่อนที่จะใช้คำอธิบายประกอบหรือแสดงเนื้อหาของบท Hooks ต้องการกิจกรรมเพื่อลงทะเบียนและสามารถคืนสัญญาว่าจะบล็อกจนกว่าจะเสร็จสิ้น
วิธีโหลดวิดีโอจากลิงก์ YouTube ผ่าน Java API
rendition.hooks.content.register(function(contents, view) {
var elements = contents.document.querySelectorAll('[video]');
var items = Array.prototype.slice.call(elements);
items.forEach(function(item){
// do something with the video item
});
})
จัดการเอกสาร EPUB ผ่าน JavaScript
Epub.js แบบโอเพ่นซอร์สมีฟังก์ชันการทำงานที่สมบูรณ์สำหรับการสร้างเอกสาร EPUB ใหม่และจัดการด้วยโค้ด JavaScript เพียงไม่กี่บรรทัด ไฟล์ที่มีนามสกุล .epub เป็นเพียงไฟล์ zip ที่มี HTML รูปภาพ และข้อมูลเมตาจำนวนมากเกี่ยวกับ eBook ของคุณ ไลบรารีอนุญาตให้ระบุ CSS และฟอนต์แบบกำหนดเองสำหรับจัดรูปแบบเอกสาร มันมีฟังก์ชันที่สำคัญหลายอย่างสำหรับการค้นหาหนังสือทั้งเล่มหรือค้นหาบทปัจจุบัน ปัดเพื่อเปลี่ยนหน้า สร้างและบันทึกตำแหน่งที่ตั้ง และอื่นๆ
ปัดเพื่อเปลี่ยนหน้าในเอกสาร EPUB โดยใช้ Java API
rendition.on("displayed", event => {
let start = null;
let end = null;
const el = event.document.documentElement;
el.addEventListener('touchstart', event => {
start = event.changedTouches[0];
});
el.addEventListener('touchend', event => {
end = event.changedTouches[0];
let hr = (end.screenX - start.screenX) / el.getBoundingClientRect().width;
let vr = (end.screenY - start.screenY) / el.getBoundingClientRect().height;
if (hr > vr && hr > 0.25) return rendition.prev();
if (hr < vr && hr < -0.25) return rendition.next();
if (vr > hr && vr > 0.25) return;
if (vr < hr && vr < -0.25) return;
});
});