کتابخانه جاوا اسکریپت رایگان برای ارائه اسناد EPUB
کتابخانه جاوا اسکریپت منبع باز برای دسترسی و ارائه اسناد EPUB در مرورگر و سایر دستگاه ها.
به دنبال کتابخانه ای ساده برای استفاده هستید که بتواند اسناد EPUB را در داخل مرورگر و همچنین در بسیاری از دستگاه های دیگر ارائه کند. Epub.js یک کتابخانه جاوا اسکریپت منبع باز بسیار قدرتمند است که به برنامه نویسان و برنامه های کاربردی اجازه می دهد تا به راحتی به اسناد EPUB در مرورگر دسترسی داشته باشند و آنها را رندر کنند. EPUB یک فرمت فایل EBook بسیار محبوب است که به طور گسترده توسط ناشران و مصرف کنندگان استفاده می شود. این توسط بسیاری از کتابخوانهای الکترونیکی و برنامههای نرمافزاری در سراسر دنیای اینترنت پشتیبانی میشود و به بسیاری از فرمتهای دیگر (مانند PDF، Mobi و iBooks) قابل تبدیل است.
Epub.js برای مدیریت کتابهای الکترونیکی بسیار مفید است، زیرا یک رابط برای عملکردهای رایج کتاب الکترونیکی مانند رندر، ماندگاری و صفحهبندی و غیره فراهم میکند. چندین روش رندر مهم وجود دارد که بخشی از آنها است، مانند روش پیشفرض تنها یک بخش را در یک زمان نمایش میدهد. از مدیر پیوسته میتوان برای نشان دادن هر تعداد قسمتی که برای پر کردن صفحه نیاز است استفاده کرد و قسمت بعدی را خارج از صفحه از قبل بارگذاری کرد. بخش لغو جریان بر اساس تنظیمات در OPF است که به طور پیش فرض صفحه بندی شده است.
این کتابخانه دارای چندین ویژگی مهم برای کار با اسناد EPUB است، مانند جستجو در کل سند EPUB، جستجوی فصل جاری، کشیدن انگشت برای ورق زدن صفحات، تولید و ذخیره مکان، ورق زدن صفحات با کلیدهای جهت دار و بسیاری موارد دیگر.
شروع کار با Epub.js
Epub.js در npm در دسترس است، ابتدا باید node.js را نصب کنید و سپس می توانید Epub.js را روی دستگاه خود نصب کنید. لطفا برای نصب راحت از دستور زیر استفاده کنید.
Epub.js را از طریق npm نصب کنید
npm install
شما همچنین می توانید آن را به صورت دستی نصب کنید. آخرین فایل های نسخه را مستقیماً از مخزن GitHub دانلود کنید.
اسناد EPUB را به روش های مختلف از طریق جاوا اسکریپت رندر کنید
کتابخانه منبع باز Epub.js برنامه نویسان نرم افزار را قادر می سازد تا اسناد EPUB را به روش های مختلف در برنامه های جاوا اسکریپت خود ارائه دهند. این کتابخانه دو روش رندر متفاوت شامل پیش فرض و پیوسته را ارائه می دهد. روش رندر پیش فرض را می توان برای نمایش یک بخش در یک زمان استفاده کرد. از سوی دیگر، حالت پیوسته را می توان برای نمایش چندین بخش بر حسب نیاز به پر کردن صفحه و از قبل بارگذاری بخش بعدی خارج از صفحه استفاده کرد.
رندر اسناد EPUB در کتابخانه جاوا Waysvia مختلف
// 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" });
قلاب ها را در اسناد EPUB در برنامه های جاوا اسکریپت اعمال کنید
کتابخانه 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 از طریق جاوا اسکریپت
منبع باز Epub.js عملکرد کاملی را برای ایجاد اسناد جدید EPUB و دستکاری آن تنها با چند خط کد جاوا اسکریپت ارائه کرده است. یک فایل با پسوند .epub فقط یک فایل فشرده حاوی مجموعهای از HTML، تصاویر و ابرداده درباره کتاب الکترونیکی شما است. این کتابخانه اجازه می دهد تا 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;
});
});