v0.3.6 完善 PDF 支持和图片资源处理,优化术语抽取上下文开销
新功能
- 新增实验性 PDF 导出,可通过
--format pdf使用。 - 提供两种 PDF 渲染引擎:
WeasyPrint:排版和 CSS 支持更完整。fpdf2:更轻量、跨平台,但只支持基础 HTML/CSS。
- 新增
--pdf-engine weasyprint|fpdf2选项。 - HTML/XHTML 输入新增对
picture、source、figcaption和图片资源的处理。 - 支持将本地资源和 Data URI 图片打包到 HTML、EPUB 与 PDF 产物中。
- 新增
.xhtml输入支持。 - 新增
trans-novel --version命令。
PDF 导出依赖按需安装:
# 默认引擎
uv sync --extra pdf-output
# 轻量引擎
uv sync --extra pdf-output-lite图片与 EPUB 修复
- 修复 MinerU 转换后的 PDF 图片在导出 EPUB 时丢失的问题。
- PDF 转换产物现在会从缓存 HTML 所在目录正确解析图片。
- 改进
<picture>、srcset、内嵌图片和图注的保留。 - 仅含图片、没有正文文字的 HTML 章节不再被跳过。
- EPUB 内部书名现在会区分目标语言和单语/双语版本:
原书名-wenyi-zh原书名-wenyi-zh-bi
术语抽取优化
- 术语抽取提示词只注入在全书中出现至少两次的已有术语,减少长书的 Token 占用。
- 只出现一次的术语仍会正常保存在术语数据库中,不会被删除。
- 全文匹配结果采用惰性缓存,同一次运行不再重复扫描全文。
- 支持合并术语原文与别名的出现次数。
- 为拉丁、希腊和西里尔文字增加单词边界判断,避免俄文等语言中的短术语误命中更长单词。
版本与构建
- 包版本改为从 Git 标签自动生成,不再在多处手工维护版本号。
- 开发版本会显示距最近标签的提交数和提交哈希。
- PyInstaller 构建会保留包版本元数据。
- 发布构建增加
--version冒烟测试。 - 测试现在会在推送到
main和dev时自动执行。
文档
- 重构中英文 README,补充:
- 项目定位与核心能力
- 一键翻译与分步工作流
- 支持格式
- Mermaid 翻译流水线图
- 项目限制与社区入口
- 完善实验性 PDF 输入与导出说明。
- 更新安装、版本查询和可选依赖文档。
注意事项
- PDF 输入和 PDF 输出仍属于实验性功能。
fpdf2的 HTML/CSS 支持有限,复杂排版可能与 EPUB 或 WeasyPrint 结果不同。fpdf2需要可用的中文字体;自动查找失败时可设置:
export TRANS_NOVEL_PDF_FONT=/path/to/font.ttf致谢
感谢 @Jiang1312 对 PDF 输出与 HTML 图片支持的贡献。
感谢 @Misaka0x26FE 对中英文 README 结构与内容的改进。