一条命令译出双语 PDF 论文: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
PDFMathTranslate(Python 包名pdf2zh)是一款开源 PDF 学术论文全文翻译工具:先识别公式、图表与正文排版,再调用 Google、DeepL 等服务逐段翻译并回填原文位置,一次产出纯译文与双语对照版。适合需要批量阅读外文文献的研究生与工程师,被 EMNLP 2025 收录为系统演示论文。
它解决什么问题
用普通翻译软件译论文的人都有过这段经历:逐页复制文本粘进翻译工具,公式变成乱码,多栏排版散掉,手工拼回去比读原文还费时间,还得自己判断哪些该翻、哪些该保留。
PDFMathTranslate 的做法是:翻译前用内置版面分析模型(DocLayout-YOLO ONNX 推理)把页面切成正文、公式、图片、表格等区域,只翻译文本区,非文本区域原样保留,再按原坐标把译文写回页面,多栏与跨页文档不会被拆散。
| 核心能力 | 你得到什么 |
|---|---|
| 排版保留 | 公式、图表、目录、注释位置样式不变,多栏/跨页文档不散架 |
| 双语双输出 | 一次翻译同时产出纯译文版与中英对照版 |
| 可插拔翻译服务 | 内置 Google、Bing、DeepL、OpenAI、Ollama、Gemini、DeepSeek 等十余种,也支持任意 OpenAI 兼容接口 |
| 多种使用形态 | 命令行、Web 界面、Docker 容器、MCP 服务、Python / HTTP API |
5 分钟跑通第一份输出
第 1 步:安装工具
本地运行要求 Python 3.11~3.12(项目声明>=3.11,<3.13),在现成环境里直接装:
pip install pdf2zh第 2 步:跑第一次翻译
默认使用 Google 翻译服务,不需要配置任何密钥,对任意一个 PDF 执行:
pdf2zh paper.pdf完成后当前目录生成两个文件:paper-mono.pdf(纯译文版)和paper-dual.pdf(双语对照版)。
首次运行卡在模型下载?程序首次运行会下载版面检测模型,网络不通时先设置镜像源再运行(Windows 用set,PowerShell 用$env:):
set HF_ENDPOINT=https://hf-mirror.com习惯点选的话,一条命令启动 Web 界面:pdf2zh -i,浏览器打开http://localhost:7860/即可。
按使用深度选你的路径
只想要结果:Web 界面
适合不想记参数的用户。启动后把 PDF 拖进窗口点Translate,翻译完直接在浏览器里预览并下载-mono.pdf与-dual.pdf。
- Service 下拉:选择翻译服务,部分需要密钥
Translate to:目标语言,界面支持英语、简繁中文、日语、韩语等 10 种Pages:整篇或只译前几页--share:生成对外可访问的临时链接;--authorized users.txt用"用户名,密码"文件限制登录用户,可自定义登录页
pdf2zh -i更多界面选项见 GUI 文档。
要调参数:PDF 翻译命令行常用组合
适合想精确控制语言、页码与服务的用户。
-li/-lo:源语言与目标语言,代码参照各服务的支持列表-p:页码范围,-p 1-3,5表示第 1~3 页和第 5 页-s:翻译服务,服务名:模型名写法可直接指定模型-t:多线程数,长文档可适当加大-f/-c:用正则声明保持原样不翻译的字体与字符,Math、Mono、Italic 等数学/代码字体默认已保护
# 英文→中文,只翻译第 1~3 页和第 5 页 pdf2zh paper.pdf -li en -lo zh -p 1-3,5 # 换用 DeepL,结果输出到 out 目录 pdf2zh paper.pdf -s deepl -o out本地文件之外,PDF 的 URL 也可以直接作为输入。完整参数表与语言代码见 docs/ADVANCED.md。
要嵌进自己的系统:API 集成与 MCP 接入
开发者有三种集成方式,细节见 API 文档。
from pdf2zh import translate params = {'lang_in': 'en', 'lang_out': 'zh', 'service': 'google', 'thread': 4} file_mono, file_dual = translate(files=['example.pdf'], **params)[0]- HTTP API:安装
pdf2zh[backend]后运行pdf2zh --flask与pdf2zh --celery worker,通过 REST 接口提交任务、查询进度、下载结果,依赖 Redis - MCP 服务:
pdf2zh --mcp(可加--sse),把翻译能力暴露给 Claude Desktop 等 MCP 客户端,用自然语言让助手找文件并翻译
要批量、可复现:目录级批量 PDF 翻译与缓存
适合需要整目录处理文献、且要求结果可复现的科研团队。
--dir:遍历目录内的 PDF 逐一处理--config config.json:加载配置文件,可预写语言、字体路径与多组翻译服务(含密钥);不指定时读取~/.config/PDFMathTranslate/config.json--prompt prompt.txt:自定义发给大模型的翻译指令,模板可用${lang_in}、${lang_out}、${text}三个变量,适合注入领域术语要求- 缓存:已翻译文本段写入缓存,重复翻译同一文档不再消耗 API 额度;
--ignore-cache强制重新翻译 --skip-subset-fonts:关闭字体子集裁剪,个别阅读器兼容不佳时使用
pdf2zh --dir /path/to/papers/从单台机器到团队服务:Docker 部署与更多形态
Docker 部署:适合团队共用一台翻译服务,跑完浏览器访问http://localhost:7860/,与本机 GUI 是同一套界面。仓库内 Dockerfile 与 docker-compose.yml 可二次定制:
docker pull byaidu/pdf2zh docker run -d -p 7860:7860 byaidu/pdf2zhWindows 免安装版:从发布页取pdf2zh.exe压缩包,解压后双击运行;打不开就按提示补装 VC++ 运行库(vc_redist.x64.exe)。
HTTP 后端服务:pip install pdf2zh[backend]后运行pdf2zh --flask与pdf2zh --celery worker,用 REST 接口提交任务、查进度,方便做成自己的在线服务,接口细节见 docs/APIS.md。
实验特性--mode precise:v2 翻译内核,需先运行pdf2zh-setup-precise搭建独立环境,面向跨栏跨页一致性等边缘场景,生产环境慎用。
实验特性--babeldoc:换用 BabelDOC 后端翻译,可搭配-s openai使用。
用之前确认这几件事
适合
- 带文本层的电子 PDF:学术论文、技术报告、标准文档、教材
- 需要"译文 + 原文"对照学习双语表达的场景(
-dual.pdf输出) - 需要批量、可复现处理整目录文献的科研或工程团队
- 把翻译能力接进自己系统或 AI 助手的工作流(API / MCP)
不适合 / 注意
- 扫描版、图片型 PDF:程序识别的是 PDF 内嵌文本,纯图片页没有可翻译的文本,需先做 OCR
- 翻译质量取决于所选服务:默认 Google 免配置;术语质量要求高时换 DeepL 或大模型服务,并用
--prompt注入领域要求 - 付费服务需配密钥:DeepL、OpenAI、Gemini 等均需在环境变量或配置文件中提供 API Key,变量名对照见 docs/ADVANCED.md
- 自建中转代理:
BASE_URL必须带/v1后缀,否则 404,配置示例见 docs/PROXY_CONFIGURATION.md - 环境要求:本地运行需 Python 3.11~3.12,可用 Docker 或 Windows 免安装版绕过;正式交付先用默认模式,
--mode precise属实验特性
参考与许可
- 完整参数表与翻译服务环境变量对照:docs/ADVANCED.md
- Python / HTTP API 集成参考:docs/APIS.md
- GUI 使用细节:docs/README_GUI.md
- 项目以 AGPL-3.0 协议开源,可自由使用、修改与分发
装好、丢一份 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
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考