Skip to content

v0.3.6 完善 PDF 支持和图片资源处理,优化术语抽取上下文开销

Choose a tag to compare

@BigDawnGhost BigDawnGhost released this 28 Jul 15:22
609d289

新功能

  • 新增实验性 PDF 导出,可通过 --format pdf 使用。
  • 提供两种 PDF 渲染引擎:
    • WeasyPrint:排版和 CSS 支持更完整。
    • fpdf2:更轻量、跨平台,但只支持基础 HTML/CSS。
  • 新增 --pdf-engine weasyprint|fpdf2 选项。
  • HTML/XHTML 输入新增对 picturesourcefigcaption 和图片资源的处理。
  • 支持将本地资源和 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 冒烟测试。
  • 测试现在会在推送到 maindev 时自动执行。

文档

  • 重构中英文 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 结构与内容的改进。