ARTICLE · 1256456
一站式扫描版PDF到epub电子书制作教程
一站式扫描版PDF到epub电子书制作教程
前言
网上存在大量的扫描版PDF,但是对于手机或者屏幕较小的电子书阅读器,读起来其实很不方便,字很小,比较费眼睛。虽然有很多软件支持扫描版PDF的重排,例如多看、KOReader、K2PDF等,但是效果得不到保证。
本文旨在提供一种自动化的由扫描版的PDF生成epub书籍,目标是尽可能准确,避免人工的介入,以减少工作量,从而将更多的时间用作读书上面,而不是耗费与迷失在各种工具里面。
目标是尽可能生成排版美观的epub格式电子书,毕竟颜值是第一生产力。但是终究是依靠了工具,人介入的部分较少,因此其实也得不到保证。但是其实只要能看,我觉得就够了。排版只是锦上添花。
本教程主要是用于自己转换电子书以及验证这种方式的可行性,以下所述的步骤与方式其实还有很大的优化空间。
工具
先说明下本文需要用到的工具。
• Python:Python运行环境,用于运行Python代码。 • Sigil:epub电子书编辑、制作软件,用于编辑与预览。 • MinerU:将PDF、Office文档等复杂文件转换为LLM可处理的Markdown/JSON格式,用于您的代理工作流。将扫描版PDF转成文本格式主要依靠这个。
步骤
软件安装与环境准备
本地自己跑:
• 操作系统:Windows 11(笔记本电脑) • 4060显卡 • Python版本:3.10.6(MinerU也会用到,官方要求版本:>=3.10,<3.15) • Sigil下载:2.8.1
Python环境安装
• 作用: • Python代码执行环境 • MinerU使用 • Python下载:
Python下载,官网地址:https://www.python.org/downloads/,根据自己的系统下载对应版本即可。
• Python安装:
安装就跟安装普通软件差不多,不会的网上搜一下或者问下DeepSeek/豆包即可。
Sigil安装
• 作用: • 编辑epub文件 • 预览epub文件 • Sigil下载:
Sigil下载,官网地址:https://sigil-ebook.com/sigil/download/,根据自己的系统下载对应版本即可。
• Sigil安装:
安装就跟安装普通软件差不多,不会的网上搜一下或者问下DeepSeek/豆包即可。
MinerU安装
MinerU 是一个开源的智能文档解析引擎,能把 PDF、扫描件等复杂文档高精度转换为保留版面、公式和表格的 Markdown/JSON,常用于为大模型和 RAG 构建高质量语料。
MinerU的安装参考了其官方GitHub仓库,地址:https://github.com/opendatalab/MinerU。
MinerU其实提供了在线的使用,官方地址:https://mineru.net/OpenSourceTools/Extractor。但是在线的对解析的文档页数有限制。
同时官方还提供了客户端,下载地址:https://mineru.net/client。不过我没用过客户端,我猜大概应该还是在线的方式。
MinerU的在线是免费使用的,之前使用过。我记得单次上传文档不能超过200页。另外看官方网站也没有看到收费的策略,官方的限流策略里面写的是:“目前暂无商业化收费计划”。但是使用超过限制,也会有一定的限流策略,具体见官网说明:https://mineru.net/apiManage/limit。
此外MinerU还可以在自己的Agent Workflow里面使用,相见官方说明。
本文采用本地部署的方式。(我一直比较喜欢离线的,数据主权和控制权攥在自己手里才放心🤣)。
MinerU安装步骤如下:
• 安装好前面的Python,版本需要与官方的说明一致 • 在合适的位置创建一个目录,作为MinerU的专属文件夹,我这里创建在E盘,目录为: E:\MinerU• 打开powershell,进入该MinerU专属目录 • 安装uv(uv 是一个用 Rust 编写的高速 Python 包与环境管理工具,能一站式替代 pip 和 venv,快速创建虚拟环境并安装依赖。),命令为: pip install uv• 在这个MinerU的专属目录下创建一个名为 .mineru的Python虚拟环境,并指定这个环境使用的Python版本,命令为:uv venv .mineru --python 3.12• 在powershell终端里面“激活”刚刚用uv创建的 .mineru虚拟环境,让接下来的 python、pip 等命令优先使用这个环境里的解释器和包,而不是系统全局的 Python。命令为:.\.mineru\Scripts\Activate.ps1• 安装MinerU,用 uv 安装 MinerU 4.x 版本的 Python 包,-U 表示升级到满足条件的最新版,>=4.0,<5 锁定主版本为 4,不会误装到 3.x 或未来的 5.x。命令为: uv pip install -U "mineru>=4.0,<5"。可以是使用mineru version --json命令来查看是否安装成功,如果成功,会输出json格式的版本号• 使用命令 mineru-kit parse document.pdf -o document.md --tier advanced解析文档到Markdown格式的文档:• mineru-kit parse是 MinerU 的无状态一次性解析命令,不依赖文档库、不复用缓存,直接把输入文件解析成文件产物。• document.pdf:输入文件。要解析的源文件,替换成你自己的 PDF 路径即可。mineru-kit parse 支持单文件、多文件、目录三种输入;目录只展开一层,不递归。这条命令用的是单文件场景。• -o document.md:输出位置。-o 是 --output 的短形式,必填,程序会自动创建父目录。可选项取决于输入类型:单文件输入:-o 可以是文件路径(如 document.md),也可以是目录路径。写文件路径时,结果直接写入这个 Markdown 文件;写目录时,会在目录下生成对应结果。多文件或目录输入:-o 必须是目录路径,不能写单个文件名。• --tier advanced:解析档位。--tier 控制解析质量与计算投入,可选项有四个:flash、basic、standard(默认)、advanced。各档位定位:档位 适合场景 本地执行方式 flash快速预览、建索引、原生文本 PDF 轻量解析,扫描件走 Flash OCR basic基础 OCR、公式和表格 ONNX/Torch 小模型,不需要 VLM standard复杂版面、日常高质量解析 小模型 + VLM advanced追求最高质量,愿意等更久 与 Standard 共用模型 ,投入更多推理计算
关于详细的命令说明,请参考官方相关文档,这里不再赘述。后续会直接使用GUI,这里只是为了展示和验证前面的是否安装成功。
这一步会涉及到很多的下载,请保持网络通畅!
• 启动WebUI,命令是 mineru-kit webui。它启动一个基于 Gradio 的本地网页界面,默认地址通常是 http://127.0.0.1:7860,可以在浏览器里拖拽上传文件进行解析。浏览器的界面如下:

PDF转Markdown
MinerU安装部分其实已经说了如何将扫描版PDF转成Markdown格式的文档了。这里不在赘述。
Markdown转epub
使用提供的Python脚本将Markdown转成给定的epub模板的电子书籍。
使用方式:
1. 修改提供的python文件(即md_to_epub_files.py)顶部的配置为自己的: # ================= 配置区 =================MD_FILE = "document.md" # 你的 MinerU 生成的 md 文件OUTPUT_DIR = "./epub_output" # 输出文件夹BOOK_TITLE = "狐" # 书名# =========================================2. 打开powershell,然后运行python脚本: python md_to_epub_files.py,脚本会在当前目录生成一个epub_output文件夹。注意将你的.md文件放在python脚本的同级目录,把图片放images文件夹。3. 运行脚本。 4. 到 epub_output目录里,你会发现:把.xhtml全部丢进Text文件夹。1. Text/文件夹:里面是按章节排好的01.xhtml、02.xhtml...2. Misc/文件夹:里面是生成的 txt 纯文本。3. toc.ncx:按你的要求生成的目录。4. content.opf:完全自动生成,并且已经正确包含了你所有的 xhtml 文件、txt、图片和 css 文件,而且spine的阅读顺序也排好了。5. mimetype没动(因为你不需要在输出目录里放这个,你只要把这个输出目录的内容复制进你真实的模板结构里打包就行)。5. 最后,使用Python脚本pack_epub.py打包。注意先将把代码里 INPUT_DIR改成你那个装好所有东西的文件夹路径(注意保留前面的r,代表原始字符串)。python pack_epub.py运行它。它会在当前目录下生成一个.epub文件。
**注意:**本模板只是针对纯文字类或者包含图片的数据,对于专业的教材,由于可能包含很多公式、图表等,无法正确处理, 如有需要,可以自己写Python代码以及制作epub电子书模板进行转换。
使用Sigil编辑和调整
由于转换等,文字识别以及格式等可能会有一些偏差,可以再继续Sigil软件继续编辑调整来进行精校。软件具体的使用方式这里不再赘述,可以网上搜教程或者直接问下DeepSeek或者豆包都行。
完成与查看
可以使用自己喜欢的epub阅读器查看,推荐:
• 多看 • 静读天下 • readset • koodo reader
结语
踩坑的地方:
• 一开始以为直接右键压缩 ZIP 改后缀就行,结果一导入就报错,后来才知道 mimetype必须放在第一位且不能压缩……• 第一次跑 600 多页的 PDF 时,电脑直接黑屏重启了,一定要插好电源并且电脑开启狂暴模式……
目前的流程只是完成了 0 到 1,后续甚至可以把写好的 Python 脚本接入大模型 API,自动清洗 OCR 错别字和排版,达到更完美的体验。不过有时间再搞吧。
以上!
附Python脚本/模板和成品:
通过网盘分享的文件:Python脚本与模板和参考成品.zip,1链接: https:删除//pan.bai删除du.com/s/1-2KxyZqTt3x-删除Y8FHH3IikQ 提取码: 8888















































































