免费 PDF 翻译:pdf2zh 十分钟翻出公式原样保留的双语论文
【免费下载链接】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(命令名 pdf2zh)是保留版式的开源 PDF 全文翻译工具:正文译成中文,公式、图表、目录留在原位。跑完得到两份文件:paper-mono.pdf(纯中文版)和paper-dual.pdf(中英对照版)。
原理与边界:版面模型分块,译文写回原坐标
链路一句话:pdf2zh 先用版面模型(预训练好的轻量模型,ONNX 格式,一种跨平台通用的模型部署格式)识别页面上每一块——正文、公式、图、图注——把需要翻译的正文送进你选定的翻译服务,再把译文写回原文所在位置。这是 PDF 公式保留翻译,页面不会被压扁成截图。
- 适合:带文本层的英文论文,尤其双栏、公式密集的理工科文献。
- 不适合:扫描件和图片型 PDF。工具只读文本层,图片型 PDF 里没有可读文字,得先 OCR(光学字符识别,把图片里的字变成可选中、可复制的文本)做出带文本层的 PDF 再翻;新版还有实验性的内置 OCR 功能(
pip install 'pdf2zh[ocr]'),翻译前自动对图片页跑本地 OCR,但仍是实验状态。
这个项目被 EMNLP 2025 System Demonstrations 收录,论文摘要写明 PyPI 下载量超 22.2 万,数字出自摘要,README 的引用块里可查原文。
十分钟拿到第一份双语 PDF:装、跑、自查
命令
环境仅需 Python 3.11/3.12,两条命令从装到跑:
pip install pdf2zh pdf2zh paper.pdf判断成功:命令结束后,当前目录多出paper-mono.pdf和paper-dual.pdf两个文件。
Windows 上不想装 Python:到项目发布页下载pdf2zh-version-win64.zip,解压后双击pdf2zh.exe;打不开就先装vc_redist.x64.exe(VC 运行库)再试。
跑完自查
- 目录里多了带
-mono和-dual后缀的两份文件,与源文件名一一对应。 - 打开 dual 版:正文是中文,公式和图还是公式和图,不是被转成的图片。效果参照:
- 通读一遍 mono 版:读得懂、版式无明显错位,就算通过。
全程不需要额外配置:默认翻译服务是 google,google、bing 两个服务都免 API key(API key 即调用付费接口的身份密钥)。
译得更好一点:质量三档、术语统一、缓存省钱
按「你想要什么」分:
- 💡想零配置跑通:默认 google 就够,或加
-s bing换服务,都不需要 key。 - 想提高质量档:
-s deepl或-s openai。前者要设DEEPL_AUTH_KEY,后者要设OPENAI_API_KEY等,每个服务各需哪些环境变量,见环境变量对照表。 - 想断网可用:
-s ollama接本地模型(默认地址http://127.0.0.1:11434),翻译环节不走外网。 - 想让术语统一:比如 "mutant" 一律译「突变体」。写一个提示词文件,用
--prompt prompt.txt传入,模板支持${lang_in}、${lang_out}、${text}三个变量。 - 想省成本:内置翻译缓存,相同内容不会重复调用 API。「先试翻几页、满意再全量」这条路是零成本的,写法看下一节。
从一篇到一团队:批量、GUI、Docker
- 只翻几页:加
-p 1-5,也支持-p 1-3,5这种写法。 - 显式指定语言方向:
-li en -lo zh。 - 一文件夹英文论文批量翻译:
pdf2zh --dir /path/to/papers/ -o output/ -t 3判断成功:output/里出现与每个源文件对应的-mono/-dual成对文件;-t是翻译线程数。
- 图形界面:跑
pdf2zh -i,浏览器没自动弹出就访问http://localhost:7860/,把 PDF 拖进去点 Translate 即可,细节见 GUI 说明。
- 🐳 团队共用 Docker,大家不必各自准备 Python 环境:先
docker pull byaidu/pdf2zh拉镜像,再docker run -d -p 7860:7860 byaidu/pdf2zh起容器,之后每个人用浏览器访问http://localhost:7860/进界面。判断成功:浏览器能打开这个地址并看到选文件页面。
翻不动了?对号入座
| 症状 | 原因 | 处理 |
|---|---|---|
| 扫描件翻出来是空的或没结果 | PDF 是纯图片,没有文本层,工具只读文本层 | 先 OCR 出带文本层的 PDF 再翻;或试新版实验性内置 OCR(pip install 'pdf2zh[ocr]') |
| 首次运行卡在模型下载或超时 | 要下载版面模型wybxc/DocLayout-YOLO-DocStructBench-onnx | 先设 HF 镜像再运行:CMD 用set HF_ENDPOINT=https://hf-mirror.com,PowerShell 用$env:HF_ENDPOINT = https://hf-mirror.com;其他网络问题查代理配置文档 |
| 换了服务或提示词,译文却没变 | 命中翻译缓存,没有重新调 API | 加--ignore-cache强制重翻 |
| 输出 PDF 字体显示异常 | 字体子集化(只保留实际用到的字形以压缩文件体积)的副作用 | 加--skip-subset-fonts跳过该步骤 |
按身份走
- 在读论文的人:今天就
pip install pdf2zh,挑必读的那篇,用-p 1-10先确认质量,再全量跑出一份-dual,当 PDF 中英对照逐段读。 - 维护团队工具的人:把上面两条 Docker 命令起一个实例,团队所有人从浏览器进,不用各自装环境。
- 想读懂实现的人:从
pdf2zh/包读起,版面解析在pdfinterp.py,翻译调度在translator.py,篇幅不长。提醒一句:Python API 目前处于弃用状态,计划在 2.0 重新提供,需要程序化调用以 API 说明 为准。
【免费下载链接】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),仅供参考