3 条命令跑通 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(pdf2zh)把外文 PDF 译成中文,同时保留数学公式、图表、目录和原始排版,支持 Google/DeepL/Ollama/OpenAI 等翻译服务,提供命令行、浏览器 GUI 和 Docker 三种入口。
谁需要它 📄
如果你常读带公式的外文论文、技术手册或会议材料,这个工具就是为你准备的。它适合三类人:需要精读带推导的学术 PDF 的科研人员;负责技术文档本地化、要批量产出双语版本的工程师;以及想给文献库批量生成中文对照版、又不愿逐页手工重排的读者。项目已被 EMNLP 2025 Demo 收录,代码里同时提供 MCP 服务入口,方便接入自己的工具链。
一条命令跑起来 ⚡
最简路径是 pip 安装加一次调用,要求 Python 3.11–3.12:
pip install pdf2zh pdf2zh example.pdf装完直接翻译当前目录的 PDF,默认使用 Google 服务、无需任何 API key。团队部署可以用docker pull byaidu/pdf2zh跑镜像,然后打开http://localhost:7860/使用浏览器界面;Windows 用户从 release 页下载 win64 zip 包解压双击即可,不需要装 Python。
完整走一遍:从 PDF 到双语文档 🔄
准备输入,执行一次完整翻译把example.pdf放到终端所在的目录,执行pdf2zh example.pdf。结束后你会在同一目录拿到两份文件:example-mono.pdf(纯译文)和example-dual.pdf(左右双栏对照),原文件的版式、公式和目录位置保持不变。文件较多时建议加-o out/指定输出目录,避免结果散落。
不想敲命令时,改用拖拽界面执行pdf2zh -i会自动打开浏览器(默认地址http://localhost:7860/),拖入 PDF、选择语言和翻译服务即可开始。端口冲突时加--serverport 8080,想临时给同事用则加--share生成一个外部可访问的地址,细节见 docs/README_GUI.md。
按需裁剪页码、语言和翻译引擎只翻指定页:pdf2zh example.pdf -p 1-3,5;指定语言:-li en -lo ja表示英文译成日文;换引擎:-s deepl、-s ollama、-s openai:gpt-4o-mini。除 Google 等免配服务外,其余引擎都需要先设置对应的环境变量,完整对照表在 docs/ADVANCED.md。
公式为什么不会坏 🔍
本地布局检测先划出禁区每页先过一遍本地 ONNX 格式的 DocLayout-YOLO 模型(检测输入尺寸 1024,模型跑在 CPU,不需要显卡),把公式、代码块、表格、图注框出来,落在这些区域内的文本整体跳过翻译。
字体级例外模式兜底检测之外还有一层保险:默认例外模式专门匹配TeX-、MS、CM、.*Math、.*Sym等数学字体名(对应-f/-c参数),命中这些字体的字符一律保留原样,所以行间公式和符号不会被拆碎。
扫描版走 OCR 实验通道扫描型 PDF 可加装 OCR 支持(pip install 'pdf2zh[ocr]'):程序只对纯图像页做本地识别,识别出的词会在版式区域内重新合并成段落,译文按原文字号的中位数起排、自动缩放到原始文本框内。限制是只针对白底扫描件,手写体和行间公式可能识别不准。另外--mode precise会启用实验性的 v2.0 内核,处理跨栏、跨页的语义一致性,首次使用需按仓库说明运行pdf2zh-setup-precise准备隔离环境。
常用选项速查 🧰
| 选项 | 作用 | 什么时候用 |
|---|---|---|
-p | 选择页码,如-p 1-3,5 | 只翻摘要、某几章或指定单页 |
-li/-lo | 源语言 / 目标语言 | 翻译方向不是默认"自动检测→中文"时 |
-s | 翻译服务,如-s deepl、-s ollama | Google 结果不够好,或想用本地模型 |
-t | 翻译线程数 | 文档页数多、API 额度充足时提速 |
-o | 输出目录 | 不想让结果堆在当前目录 |
-f/-c | 字体/字符例外正则 | 个别符号或字体总被误翻时 |
--dir | 批量翻译整个文件夹 | 一次处理一整篇文献库 |
--config | 从 JSON 配置文件读参数 | 参数固定、希望一条命令反复执行 |
--mode precise | 切换实验性 v2.0 内核 | 疑难版式、跨栏跨页文档 |
--prompt | 指定自定义提示词文件 | 用 LLM 服务时需要统一术语风格 |
更多参数的完整说明在 docs/ADVANCED.md。
先踩过的坑 ⚠️
Q:第一次运行就卡在"下载模型",等了十分钟没动静。网络到不了 Hugging Face 时,先设置镜像再执行:set HF_ENDPOINT=https://hf-mirror.com(PowerShell 用$env:HF_ENDPOINT="https://hf-mirror.com")。布局模型是一次性下载,之后离线可用。
Q:翻译跑完了,结果文件到底在哪?默认输出到当前工作目录,命名固定为原文件名-mono.pdf和原文件名-dual.pdf,加过-o则在指定目录里。找不到时先ls当前目录,这是最高频的误会。
Q:一份 80 页的 PDF 要等十几分钟,能再快点吗?瓶颈大多在翻译服务的 API 延迟,-t 4之类的多线程只在线程数小于任务数时有效。翻译结果缓存在~/.cache/pdf2zh,相同段落重跑会直接命中缓存;换服务或想强制重翻时加--ignore-cache。
一句话总结:把 PDF 丢给pdf2zh,拿回一份公式、图表和版式都没动的双语文档。
- 核心能力:PDF 全文双语翻译、数学公式与排版完整保留、多翻译引擎与 OCR 支持
- 适用场景:外文论文精读、技术文档本地化、会议材料双语制作
【免费下载链接】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),仅供参考