BabelDOC PDF 翻译 3 步上手:保留公式与版式的论文翻译工具
【免费下载链接】BabelDOCYet Another Document Translator项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC
周五晚上,导师甩来一篇全英文论文 PDF,周一前要交中文版。通用翻译工具一试就露馅:公式变成占位符,双栏排版糊成一团。BabelDOC 就是为这种场景准备的开源 PDF 论文翻译工具:译文保留公式、图表和原始版式,还会额外生成一份中英对照的双语 PDF,方便你边读边核对。
它解决什么问题
BabelDOC 是一个命令行 PDF 论文翻译工具:输入一个 PDF 文件,输出翻译后的 PDF。它不做网页划词翻译,不编辑 Word 文档,也不做通用文档格式转换,就专注"PDF 进、PDF 出"这一件事。边界要说清楚:翻译对象是带矢量文本的电子 PDF,纯扫描件需要走专门的 OCR 补救参数。
它和通用翻译方案的差别在三处。第一,公式不走翻译引擎,整段作为矢量图形保留,翻译完还在原位。第二,翻译前先把整页拆成结构化的中间表示,译文重新排回原文的文本框,版式基本不漂移。第三,默认同时输出双语对照文件,原文译文左右并排,核对很方便。翻译质量由你接的模型决定,工具负责的是让译文放得回去、放得整齐。
核心能力拆解
解析多栏页面版式
它先用版面识别模型把每页划分成正文、图、表、页眉等区域,再按阅读顺序整理。这一步由 版面识别模块 完成。对你来说的效果是:双栏论文的阅读顺序不乱,参考文献不会被拆散。
把公式从正文里拆出来
公式、上下标和特殊符号在送译前会被替换成占位符,正文文字才发给翻译模型,翻译完再填回原处。拆分逻辑在 公式与样式处理模块 里。你感知到的是:E 形公式、希腊字母、上下标一个都没被翻译器碰坏。
按段落并行翻译
翻译以段落为单位发起,而不是整页打包,长文档可以并行处理,速度有保障。提示词由 中间层翻译模块 组装,会带上标题上下文,还能注入自定义术语表,让同一术语前后保持一致。
重新排版适配原文本框
中文字数通常比英文长,直接放进去会撑破版面。排版算法会自动缩小字号、收紧行距,把译文塞回原位置,实在放不下再向空白区域扩展,逻辑在 排版模块。效果是:翻译后的页数和整体版式跟原文基本一致。
5 分钟跑起来
推荐用 uv 安装,两条命令装好:
uv tool install --python 3.12 BabelDOC babeldoc --help翻译需要 OpenAI 兼容的接口(本地模型如 Ollama 也能接),最小可运行命令:
babeldoc --openai --openai-model "gpt-4o-mini" \ --openai-base-url "https://api.openai.com/v1" \ --openai-api-key "你的KEY" --files paper.pdf跑完后当前目录会多出两个文件:纯译文版 PDF 和双语对照版 PDF(同一页左右并排)。首次运行会自动下载版面识别模型和字体资源,之后走本地缓存。也支持 git clone 源码后用uv run babeldoc直接运行,仓库地址是 https://gitcode.com/GitHub_Trending/ba/BabelDOC ;所有参数也可以写成 TOML 配置文件,避免每次敲一长串。
典型工作流
以"把一篇英文论文翻成中文"为例:
- 准备输入。把 paper.pdf 放到工作目录,确认手上有可用的 API key。你应看到
babeldoc --help能正常打印参数列表。下一步,运行上一节的翻译命令。 - 等待翻译。终端按页推进,每完成一批段落进度就刷新一次,长文档会分段并行。如果你想知道每段发给模型的提示词长什么样,可以加
--debug,中间结果会导出到缓存目录。下一步,等最后一页进度条走完,打开输出目录。 - 核对并交付。先翻双语对照版抽查术语和公式,发现问题加
--ignore-cache重新翻译。确认没问题,把纯译文版 PDF 交出去。
进阶技巧
用术语表锁定专业词汇
适合术语必须全文统一的系列文档。术语表是 CSV 格式,source和target两列必填:
source,target,tgt_lng "quantum computing","量子计算","zh-CN"babeldoc --files paper.pdf --glossary-files terms.csv --openai段落里只要命中术语表条目,对应条目就会随提示词发给模型,同一个词不会被翻出两种叫法。
大文档分段翻译
超过百页的文档一次性处理容易吃满内存,加一个参数就行:
babeldoc --files big.pdf --max-pages-per-part 30文档会被自动切成 30 页一段处理,全部完成后自动合并回一个完整 PDF,你不需要手动拼接。
处理扫描版 PDF
扫描件没有可选文本,普通流程翻译会空手而归:
babeldoc --files scanned.pdf --ocr-workaround它走 OCR 补救流程,在译文下方垫白底遮住原文并强制黑字,适合白底黑字的扫描文档。
写在最后
BabelDOC 把"PDF 翻译后版式崩掉"这个问题拆成了版面识别、占位保护、重新排版三步,翻译完的论文读起来还是论文的样子。它不承诺替代人工校对,但能把"翻完再手工排版"的两小时压缩到"翻完即交"。经常读英文论文和技术文档的人,值得花 5 分钟装一下试试。
遇到问题先看官方文档 docs/README.md 和实现细节说明,仓库也欢迎你提 issue。
💡 小贴士:目前项目主要打磨的是英文到中文这条链路,其他语言对(英到日、英到法等)也能跑,建议先拿几页小样验证效果。
【免费下载链接】BabelDOCYet Another Document Translator项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考