40
0
0

EPUB-PDF转换器

2026-09-10
2026-09-26

为了转换epub为pdf方便打印 同时作为https://calibre-ebook.com转换功能的便携(html实现)平替

专门使用:

https://www.trae.cnhttps://www.dumate.cn

制作了转换器

下载链接:

https://pan.1n34.top/ilanzou/1n34/code/epub-converter-v2.2.zip

README.md

# EPUB 转 PDF 转换工具(单文件版)

> 版本 v2.2 · 浏览器本地运行 · 文件不上传服务器

一个开箱即用的 EPUB → PDF 转换工具,全部功能封装在单个 HTML 文件(epub-converter-v2.2.html)中,无需安装任何软件,用浏览器打开即可使用。

---

## 快速开始

在线使用(外网地址,免下载): 浏览器直接打开 <https://www.dumate.cn/artifacts/epub_pdf> 即可使用(已发布版本与本地单文件版内容一致,点开即用)。

本地单文件版:

1. 用 Chrome / Edge 打开 epub-converter-v2.2.html(双击即可,离线可用,无需联网)。

2. 将 .epub 文件拖入页面,或点击上传区选择文件(支持一次选择多本 EPUB)。

3. 在「章节」卡片中勾选需要转换的章节(支持全选/取消)。

4. 在「设置」卡片中按需配置页面、字体、图片清晰度、输出方式等。

5. 点击「开始转换」,完成后自动下载 PDF 文件,或弹出浏览器打印预览。

> 提示:在地址栏以 epub-converter-v2.2.html?autofile=EPUB文件URL 打开,可直接自动加载远程 EPUB(需目标服务器允许跨域读取)。

## 功能特性

- 零依赖安装:JSZip / jsPDF / html2canvas 等库已内嵌,单文件即完整工具

- 多书合并:支持多本 EPUB 同时导入并合并输出

- 两种输出模式:

- 直接生成 PDF(jsPDF 引擎,分段渲染 + 智能分页)

- 浏览器打印(保留 EPUB 原排版 CSS,输出前弹出打印预览)

- 目录与页码:自动侦测目录章节;目录下一页起算为第 1 页;可在 PDF 目录条目右侧叠加目标页码

- 图片处理:图片清晰度 1.5x / 2x / 3x 可选;纯图片章节整页显示;图片溢出时移至下一页完整显示;可选跳过纯图片页页码

- 版式控制:页面尺寸(A4 / A5 / B6 / B5 / Letter)、页边距、正文字号、行距;每章新起一页开关;章节标题自动插入

- 字体体系:内置钉钉进步体 / 衬线 / 黑体 / 圆体 / 楷体 / 行楷 / 隶书 / 微软雅黑等字体方案(默认衬线体;钉钉进步体需本机安装后生效,未安装自动回退);可选「仅使用原字体」;可选「目录前的页面与文章标题不参与字体转换」

- 阅读氛围:可选泛黄纸纹效果(文字与背景同步调色)

- 鲁棒性:章节渲染失败自动生成占位页,不影响整本输出;超长章节自动分段渲染防止画布超限被截断;低内存设备自动降低渲染精度

- 隐私安全:所有处理均在浏览器本地完成,文件不上传

## 设置项说明

| 分组 | 设置项 | 说明 |

| --- | --- | --- |

| 页面 | 页面尺寸 | A4 / A5 / B6(128×182) / B6(125×176) / B5 / Letter |

| 页面 | 上下/左右边距 | 正文内容距页面边缘的距离(mm) |

| 字体 | 字体选择 | 默认衬线体;钉钉进步体(需本机安装)可选,另有黑体、圆体、楷体、行楷、隶书、微软雅黑等 |

| 字体 | 正文字号 | 原始字号可被覆盖(px 自动换算为 pt) |

| 字体 | 仅使用原字体 | 不动用上方字体方案,保留 EPUB 原始字体 |

| 字体 | 目录页与标题不参与字体转换 | 封面、版权、目录等页与每章标题保持原字体 |

| 图片 | 图片清晰度 | 渲染缩放倍数,越高越清晰但 PDF 越大 |

| 图片 | 图片溢出移至下页 | 无法在当前页完整显示的图片自动下移 |

| 章节 | 每章新起一页 | 章节从新页开始,避免首尾衔接 |

| 章节 | 显示章节标题 | 每章开头插入标题 |

| 章节 | 整页图片 | 纯图片章节按整页显示 |

| 输出 | 输出方式 | 直接生成 PDF 或浏览器打印 |

| 输出 | 添加页码 | 目录下一页为第 1 页(打印模式使用 @page 页脚) |

| 输出 | 跳过纯图片页页码 | 纯图片页不叠加页码 |

| 封面/并行 | 封面无边距 | 第一页封面去除页边距(打印模式) |

| 转换 | 顺序/并行 | 多书转换的调度方式;并行支持并发数设置 |

## 转换前后效果预览

同一源书的转换前后样例(点击链接可直接下载):

| 阶段 | 文件 | 大小 | 链接 |

| --- | --- | --- | --- |

| 转换前(源 EPUB) | 魔女之旅 07.epub | 约 3.7 MB | https://pan.1n34.top/d/ilanzou/1n34/other/converted-epub/%E9%AD%94%E5%A5%B3%E4%B9%8B%E6%97%85%2007.epub?sign=16T71ETvoFHP-qpWepBdne1J8uyPyN7AjR6REsglpPY=:0 |

| 转换后(PDF) | 魔女之旅 07.pdf | 约 144.7 MB | https://pan.1n34.top/d/ilanzou/1n34/other/converted-epub/%E9%AD%94%E5%A5%B3%E4%B9%8B%E6%97%85%2007.pdf?sign=RBbrFqJ89iA05LJnz0ZtKa48_3DpQi9XZ13D-jk1s0k=:0 |

> 直链带站内访问签名(2026-09-22 核验可下载,EPUB 3,925,558 字节;PDF 151,671,076 字节);若签名过期,请前往目录 https://pan.1n34.top/ilanzou/1n34/other/converted-epub 获取最新链接。

## 字体验证结论(2026-09-25)

### 钉钉进步体(DingTalk JinBuTi)

结论:可以使用并随本生成器公开发布(以字体族名引用形式),但不得分发字体文件本体。

依据钉钉官方《钉钉进步体法律法规声明》(钉钉(中国)信息技术有限公司发布,本包附有 PDF 原件):

- ✅ 允许:通过钉钉官方渠道下载、安装、使用,免费、不可转让、非排他的普通许可,**可合法用于商业或非商业用途**;钉钉官方亦公告「永久免费商用」

- 🚫 禁止:上传、发布、转载字体文件本体;对字体进行修改、仿制、转换、反编译、拆分等;删除/覆盖法律声明;单独定价出售、出租、转授权

- 字体文件内部标记(OS/2 fsType = NoSubsetting)同样声明**禁止子集化**,与官方声明一致

因此本生成器采用**合规接入方式**:仅将 'DingTalk JinBuTi','钉钉进步体' 写入字体族名优先位,**不内嵌字体文件、不随 zip 打包 ttf、不做子集化**。用户需自行从钉钉官方渠道下载安装后,选择「钉钉进步体」即在本地渲染生效;未安装时自动回退到黑体(Noto Sans SC / PingFang / 微软雅黑)等系统字体,不影响转换功能。

官方下载页:<https://page.dingtalk.com/wow/dingtalk/default/dingtalk/y-W5aF3_ZJwzulU0nceIl>

### 生成器既有字体方案(13 种)

结论:全部可随本生成器公开使用与发布,无授权分发风险。

既有字体方案(衬线/Noto Serif、黑体/Noto Sans、楷体、仿宋、宋体、黑体、圆体、隶书、微软雅黑、极细等)在生成器中均以**系统字体族名(font-family)引用**,不携带任何字体文件本体、不做子集化、不内嵌字体文件——属于「调用用户设备已有字体」的使用行为,而非字体再分发,不涉及字体厂商授权边界;渲染效果取决于查看/打印设备已安装的字体,未安装时按字体栈依次回退。

## 版本记录

### v2.2(当前)

- 版本号由 v2.1 升级为 v2.2(纯版本号升级,功能逻辑不变)

- 文件名与文档引用同步更新为 epub-converter-v2.2.html;默认字体保持衬线体,钉钉进步体为可选(需本机安装)

### v2.1

- 新增「钉钉进步体」字体方案(非默认,需本机安装后生效,未安装自动回退——授权限制,不内嵌字体文件;默认仍为衬线体)

- 新增「字体验证结论」章节:钉钉进步体及既有字体体系的授权核验结论

- 移除文件名及页面标题中的 d-18000 编号标记

### v2.0

- 修复打印模式页码失效:此前 @page 内嵌套 @page 属无效 CSS,浏览器会忽略导致「打印 + 添加页码」时页码不显示;现改为在主 @page 中直接使用 @bottom-center 页脚规则

- 修复兜底渲染样式图片限高单位笔误(页面高度毫米值被误当像素值,图片被过度缩小)

- 补齐纯图片页 / 占位页渲染的返回值字段(tocEntryPositions、imgPositions 与常规章节一致)

- 打印模式下章节标题与文档标题做 HTML 转义,防止含 <、& 等字符的书名/标题破坏打印文档结构

- 句法校验:5 段内嵌脚本全部通过 node --check,CSS 大括号/变量/标签配对校验通过

### 更早修复(v1.x 累计)

- 补齐 --warn 等 CSS 变量缺失;修复两处渲染容器 overflow 声明冲突

- display:none 兜底覆盖加元素类型排除(不误伤 script/style 等)

- 打印模式接入 useOriginalFont / chapterNewPage / tocTitleNoFont 设置项,补全 fullPageImage / coverNoMargin 对应 CSS

- re-render 路径返回值补齐 imgPositions,避免二次渲染后图片切割失真

- _fixTextVisibility 支持 rgba() 白色/黑色文字(半透明水印不改色)

- _canvasHasContent 像素读取改为批量 band 方式,降低大图扫描开销

- showStatus 定时器防叠加(多次调用不再造成提示提前消失或重复触发)

## 注意事项

- 建议使用 Chrome / Edge 最新版;打印模式依赖浏览器打印对话框

- 超大体量 EPUB 或 3x 超清渲染时,转换耗时与内存占用会明显上升,属正常现象

- 若 EPUB 内嵌字体过大(data URI 超过 500KB),转换时会自动跳过该字体以避免生成超重 PDF

- 本工具为本地网页工具,不收集任何文件与数据

## 技术支持与作者

- 技术支持:[1n34云](https://cloud.1n34.top)

- 作者:[1n34](https://1n34.top)

## 开源协议

本项目以 知识共享 署名-非商业性使用 4.0 国际(CC BY-NC 4.0) 协议开源发布,协议全文见 <https://creativecommons.org/licenses/by-nc/4.0/deed.zh-hans>。

协议核心约定(满足"永远保留作者、允许修改、不允许商业"):

- 永远保留作者署名:使用、复制、修改、合并、再分发本项目(含任何部分)时,必须始终保留原作者「1n34」与技术支持「1n34云」的署名信息,不得移除、遮挡或替换页面页脚与说明文档中的作者信息;该项署名义务不可撤销、永久有效

- 允许修改:允许在保留署名并遵守本协议的前提下,对本项目进行修改、二次开发与再分发(衍生作品同样适用本协议)

- 不允许商业使用:不得将本项目或其衍生作品用于任何商业目的,包括但不限于商业售卖、商业托管服务、以本项目作为付费服务交付物等

## 文件清单

```

epub-converter-v2.2.html 工具本体(单文件,双击即可运行)

readme.md 本说明文档

在线版本 https://www.dumate.cn/artifacts/epub_pdf(已发布,内容与本地文件一致)

```

---

© 2026 [1n34](https://1n34.top) · 由 [1n34云](https://cloud.1n34.top) 提供技术支持 · 基于 CC BY-NC 4.0 开源 · 浏览器本地转换 · 文件不上传

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

评论

欢迎来到我的博客!