跳过正文

魔改 pdf.js 的 Web 漫画阅读器

Mezn
作者
Mezn
欢迎来到我的数字花园。这里记录我的技术折腾与生活感悟。

介绍
#

Mozilla 的 pdf.js 项目虽然在浏览文档电子书时表现出色,但用来在 Web 端看漫画体验就很一般了。

原版默认采用 Automatic Zoom(自动缩放)和 Vertical Scrolling(垂直滚动),这种配置在阅读漫画时,既无法一眼看清全页,也丢失了翻页的沉浸感。

所以我基于 pdf.js 进行了一番“魔改”,将其打造成了一个专用的漫画阅读器。主要改动包括:

  • 解除跨域限制 移除了 Viewer 对“文件来源必须与 Viewer 同源”的强制校验,允许加载第三方域名的 PDF 文件(需服务端配置 CORS)。
  • 默认全屏适应 默认缩放使用 Page Fit 模式,打开即全屏显示单页内容。
  • 默认翻页模式 默认视图使用 Page Flip,模拟漫画的翻页体验,而不是电子书的垂直滚动。
  • 智能点击翻页 添加了屏幕两侧点击翻页功能,在 Tools 里可以手动修改规则。默认点击屏幕左侧翻下一页,点击右侧翻上一页。
  • 移动端优化 检测到移动端时会自动显示悬浮的全屏按钮,点击即可进入 Presentation Mode,在手机小屏上快速最大化显示内容。
  • 防误触机制 增加了 300ms 的点击防抖(Debounce),防止手滑导致连续翻页。
  • 自动连载加载 自动加载下一卷,匹配正则规则 (_E)(\d+)(\.pdf)$。当阅读到当前卷最后一页并继续翻页时,会自动检测并加载下一卷,实现无缝连读。

使用方法
#

直接使用以下链接格式:

https://mpdf.mezn.de/web/viewer?file=URL