本项目在本地/浏览器中快速将 TXT 转为 EPUB,目标是“快速可读、操作简单、兼容 Kindle/阅读器”的初级转换。下面按照当前页面功能给出简要使用指南与注意事项。
主要功能(截至当前版本)
- 拖放或点击选择 TXT 文件(支持桌面拖放,移动端点击选择)。
- 可选封面:支持点击选择或将图片拖放到封面预览区域(支持常见图片格式)。
- 自动压缩封面:如果封面过大,脚本会尝试在浏览器端压缩为 JPEG(默认最大边 1600px,质量 0.8),仅在压缩后更小才替换原图。
- EPUB 结构规范化:生成包含
content.opf、toc.ncx、章节 XHTML、style.css 与titlepage.xhtml(封面页)的压缩 EPUB。 - ZIP 压缩(DEFLATE)以减小输出体积,生成后会自动触发浏览器下载。
快速上手
- 打开
index.html(或用简单静态服务器在本地打开页面):python3 -m http.server 8000 # 浏览器打开 http://localhost:8000 - 将你的 TXT 文件拖到左侧区域,或点击选择文件。
- (可选)在右侧选择或拖放图片作为封面;页面会显示封面预览与大小信息。
- 点击“生成 EPUB”开始生成,页面会显示短暂提示并自动下载生成的 EPUB 文件。
注意与建议
- 生成速度通常很快(取决于 TXT 大小与浏览器性能),但浏览器端处理超大文件(几十 MB 以上)仍受限于内存与单线程 JS 的性能。
- 对 Kindle 兼容性:我们把封面声明为 EPUB2 常见的
<meta name="cover" content="cover">并在 manifest 中包含封面图片与titlepage.xhtml,同时设置itemref linear="no",这能解决大多数设备的识别问题。如果某些设备仍无法识别,请尝试使用 Calibre 做二次转换。 - 图片质量/体积权衡:默认压缩策略比较保守(1600px / 0.8),你可以在代码中调整
maxCoverDim或coverQuality以获得更小体积或更高质量。
常见问题
- Q: 生成后的 EPUB 比 TXT 还大?
- A: 可能是封面图片较大或未启用压缩。检查封面大小;脚本会在可能时压缩封面,或手动提供较小封面可显著降低 EPUB 大小。
- Q: Kindle 仍看不到封面?
- A: 请确保设备支持直接读取 EPUB(或使用 Calibre 转换成 MOBI/AZW3),并尝试重新导入。不同设备对封面/封面页的识别差异较大。
贡献与反馈
- 欢迎提 issue 或 PR,说明你的使用场景和遇到的问题(尤其是不同阅读器的兼容性问题),我会持续改进。
以上就是按当前实现重写的说明部分,如需我把 README 再扩展成详细的开发指南或增加常见问题/示例截图,我可以继续完善。
- 生成的epub文件仅有基础样式,且部分软件可能无法识别封面页
- 生成的体积与原先的txt体积相同或者更大一些(epub涉及的文件比txt多)