TXT2EPUB Pro 是一个小说转换工具,旨在将 .txt 文本文件高质量地转换为 .epub 电子书格式
虽然现在在转换出的epub格式文件存在:
空白页;字体不符合等问题,但是正在努力解决中。
如果我修复了这些问题,我会删除这部分内容。
但是你完全不需要担心,转换的内容你可以高质量的阅读,
这完全不会影响到你的阅读体验。
本项目采用了模块化架构设计(MVC 变体),不仅具备极高的稳定性与扩展性,还针对中文网络小说的排版、编码和元数据进行了深度优化。
- 智能章节识别:基于预编译正则引擎,精准识别“第X章/节/回”等中文目录格式,自动生成 EPUB 目录(TOC)。
- 工程级健壮性:内置
get_app_root路径锚定技术,无论是在 IDE 中运行还是打包成 EXE,均能准确读写文件,彻底解决路径报错问题。 - 智能编码探测:自动处理 UTF-8 与 GB18030/GBK 编码,告别乱码困扰。
- 进度无损重制:基于“书名+作者”生成确定性 UUID,重新生成书籍后,阅读器(如 iBooks, Kindle, 多看)仍能保留高亮与阅读进度。
- 资源自动嵌入:
- 封面:自动探测同名图片或
cover.jpg。 - 字体:支持嵌入自定义
.ttf/.otf字体,并在 CSS 中自动引用。
- 封面:自动探测同名图片或
- 批量处理:支持单本转换与目录下所有文件的一键批量转换。
本项目采用了分离关注点(Separation of Concerns)的模块化设计:
txt2epub_pro/
│
├── main.py # [入口] 程序控制器,负责用户交互与流程调度
├── converter.py # [核心] 业务逻辑层,封装了 EPUB 生成与文本解析逻辑
├── utils.py # [工具] 底层工具库,处理路径锚定、文件名清洗等
│
├── input/ # [自动生成] 存放待转换的 .txt 小说
├── output/ # [自动生成] 存放转换完成的 .epub 电子书
├── fonts/ # [自动生成] 存放自定义字体文件 (.ttf)
│
└── requirements.txt # 依赖说明
确保你的电脑已安装 Python 3.6 或以上版本。
安装核心依赖库 EbookLib:
pip install EbookLib在终端或命令行中进入项目目录,运行:
python main.py程序启动后,会自动创建 input, output, fonts 三个文件夹。
- 将你的小说文件(
.txt)放入input文件夹。 - (可选) 将封面图片放入同目录。
- 在终端按提示操作即可。
程序按以下优先级查找封面:
- 同名图片:如果小说叫
凡人修仙传.txt,程序会优先寻找凡人修仙传.jpg(或 .png)。 - 通用封面:如果没有同名图片,程序会寻找
cover.jpg。
- 将字体文件(例如
KaiTi.ttf)放入fonts文件夹。 - 运行程序时,选择对应的字体序号。
- 生成的 EPUB 会自动嵌入该字体,并设置为全文默认字体。
得益于 utils.py 中的路径处理逻辑,你可以轻松将其打包为独立可执行文件分享给他人:
pip install pyinstaller
pyinstaller -F main.py -n "TXT2EPUB_Converter"打包的 EXE 文件可以直接在任何 Windows 电脑上运行,无需安装 Python
本重构版本解决了旧版单文件脚本的以下痛点:
-
解耦 (Decoupling):
converter.py不包含任何input()或print()交互逻辑,使其可以轻松被移植到 Web 后端或 GUI 界面(如 PyQt/Tkinter)中。utils.py隔离了操作系统层面的差异。
-
安全性 (Safety):
- 引入
sanitize_filename,防止恶意文件名(如包含../../或|)导致的文件系统错误。 - 显式的异常捕获机制,防止单本书籍的错误中断整个批量任务。
- 引入
- EbookLib: 用于生成 EPUB 容器的核心库。
本项目供学习,采用MIT License授权和使用.