PDFMathTranslate PDF 翻译工具:一条命令把英文 PDF 翻成双语对照
【免费下载链接】PDFMathTranslate[EMNLP 2025 Demo] PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/MCP/Docker/Zotero项目地址: https://gitcode.com/GitHub_Trending/pd/PDFMathTranslate
PDFMathTranslate 是一款保留版式的 PDF 翻译工具:给它一份英文论文 PDF,它会输出一份纯中文版和一份中英双语对照版,公式、插图和图注都留在原来的位置。项目被 EMNLP 2025 接收,论文摘要写明 PyPI 累计下载量已超过 22 万次,当前发布版本为 1.9.12。本文从安装讲到出结果,后半段列出真正会导致"跑不通"的坑。
这款 PDF 翻译工具替你干哪几件事
PDF 翻译这件事,它拆成四步自动完成。
- 版面识别:内置版面模型(一个"看一眼页面就能说出每块是什么"的 AI 模型)判断每个区域是正文、公式、图还是图注,决定哪些要翻、哪些不动。
- 翻译调度:正文拆段后并发发给 Google/Bing/OpenAI 等翻译服务,结果写回原来的位置;翻译带缓存,相同内容不会重复提交。
- 双语输出:一次运行产出纯中文和双语对照两份 PDF,公式还是公式,图注、目录不丢。
- 多入口:除命令行外,还有浏览器图形界面、Docker 容器,以及 MCP 模式(让 AI 客户端把翻译当工具调用)。
最短路径跑通
从安装到出第一份译文只要 3 步,前提是装好 Python 3.11 或 3.12。
第一步,安装工具和命令:
pip install pdf2zh装完就多出pdf2zh命令;习惯uv的话也可以用uv tool install --python 3.12 pdf2zh代替,不想装 Python 的 Windows 用户可直接用官方发布页的 win64 压缩包。
第二步,执行翻译。把论文放在当前目录,运行这一行,默认走 Google 翻译,不需要 API key(调用第三方服务的凭证):
pdf2zh paper.pdf首次运行会顺带下载版面模型,比之后慢一些,然后你会看到进度条滚动。
第三步,看结果。✅ 当前目录多出两个文件:paper-mono.pdf(纯中文版)和paper-dual.pdf(双语对照版),打开就能验收。
按需深入
以下四个场景按由轻到重排列,只读你现在对得上的一条。
当你不想一次翻完整篇时
长文档先试读前几页,-p 1-5表示只翻第 1 到 5 页:
pdf2zh paper.pdf -p 1-5因为翻译有缓存,"先试读再全量"零成本——第二次全量运行会直接复用已翻好的内容。源语言不是英语时,显式指定方向:
pdf2zh paper.pdf -li en -lo zh-li和-lo分别是源语言和目标语言。
当默认翻译质量不满意时
用-s切换翻译服务。免 key 的常用项是默认的google和bing;需要完全不依赖外网、翻译在本地跑时,用ollama接自己机器上装的模型。
pdf2zh paper.pdf -s ollamadeepl、openai 等其他服务要先设置 API key 等环境变量,各服务的变量对照表见 docs/ADVANCED.md。有固定术语时,用--prompt传一份自定义提示词文件,模板支持${lang_in}、${lang_out}、${text}三个变量。
当你要 PDF 批量翻译时
--dir指定输入目录,-o指定输出目录,-t 3表示开 3 个翻译线程:
pdf2zh --dir /path/to/papers/ -o output/ -t 3一条命令跑完一整个文件夹。
当你不想碰命令行时
图形界面跑在浏览器里:选文件、选服务、选页数,翻完直接下载译文。
pdf2zh -i浏览器没自动弹出就手动访问http://localhost:7860/,细节见 docs/README_GUI.md。给团队共用则部署byaidu/pdf2zh这个 Docker 镜像,不用准备 Python 环境。
翻译后的 PDF 长什么样
官方演示拿一篇 2006 年的 Nature 论文做的:双栏排版、公式多、带网络图,参数全用默认。翻译前是英文原文(左);翻译后正文变成中文,公式块、节点网络图、图注全部待在原位置(右)。
下面这些点你可以自己去核实:
- 全部源码在 pdf2zh/ 包内,版面解析和翻译调度分别在
pdf2zh/pdfinterp.py与pdf2zh/translator.py,篇幅不长,可以顺着读。 - 上文出现的
-s服务取值和各服务环境变量对照表,都在 docs/ADVANCED.md 里。 - Python API 目前处于弃用状态,计划在 2.0 重新提供;需要程序化调用先看 docs/APIS.md。
这几个坑提前说
⚠️ 以下都是真实会导致"跑不通"或"结果不对"的原因,每条给了具体解法。
- 扫描版 PDF 无效。工具解析的是 PDF 文本层(页面背后可复制的字符),纯图片扫描件会翻不出东西;先找文本版,或用
pip install 'pdf2zh[ocr]'装 OCR 功能重新识别(仍是实验特性)。 - 首次下载模型超时。版面模型要从 Hugging Face 拉取,网络慢时先设镜像再运行:Windows 命令提示符用
set HF_ENDPOINT=https://hf-mirror.com,PowerShell 用$env:HF_ENDPOINT="https://hf-mirror.com"。 - 换了服务或提示词,译文却没变。翻译结果有缓存,不会重新调 API;加
--ignore-cache强制重翻。 - 输出文件字体出问题。字体子集化(只保留文档用到的字)对部分 PDF 兼容性不佳;加
--skip-subset-fonts跳过这一步。 - 默认服务连不上。你所在网络下 Google 翻译超时时,换
-s bing兜底,同样免 key。
今天可以只做这一件事:pip install pdf2zh,翻一份你一直想读的那篇论文,先打开-dual对照着读。想搞清楚它怎么做的,从pdf2zh/pdfinterp.py入手,版面识别到翻译回写的链路比想象中直白。PDFMathTranslate 做的事其实很具体:把公式当公式、把图当图,只让文字部分变得能读。
【免费下载链接】PDFMathTranslate[EMNLP 2025 Demo] PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/MCP/Docker/Zotero项目地址: https://gitcode.com/GitHub_Trending/pd/PDFMathTranslate
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考