PDFMathTranslate 从零部署:完整保留排版的 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 是基于 AI 的 PDF 全文翻译工具,翻译英文论文时完整保留公式、表格与排版。跟着做完,你会拿到一个浏览器可用的 PDF 翻译网页服务,可开放给局域网或公网使用。
先选路:30秒定你的部署方式
- 如果你有一台装了 Python 3.11–3.12 的开发机、要随时调试 → 走pip 安装路线,一条命令装好,报错信息能直接定位到问题。
- 如果你要在服务器上长期跑、重启也要原样恢复 → 走Docker 容器,环境随镜像自带,拉起即用。
- 如果你在 Windows 上、不想折腾环境 → 走绿色版,解压后双击
pdf2zh.exe,零依赖。
推荐从 pip 路线开始:后文所有命令都以它为基准,Docker 只是把环境换掉,用法完全一致。
跑起来
按你选的路径执行最小命令序列:
pip install pdf2zh # 需要 Python 3.11–3.12 环境 pdf2zh -i # 启动网页界面,默认监听 7860 端口跑通的判断标准:终端出现 Running on local URL 提示,浏览器自动打开http://localhost:7860,页面上能看到文件上传框和翻译服务下拉框。
Docker 路线只有两条命令,镜像的启动命令本身就是pdf2zh -i:
docker pull byaidu/pdf2zh docker run -d -p 7860:7860 byaidu/pdf2zh # 容器内端口固定 7860镜像里的字体与 LibreOffice 依赖细节见 Dockerfile。
真正用起来:一次完整操作
最典型的场景:把一篇 arXiv 英文论文翻成中文,确认公式和表格没被翻乱。
输入:任选一篇英文论文 PDF,10MB 以内、结构常规即可。
操作:浏览器打开http://localhost:7860,把 PDF 拖进上传框;翻译服务默认 Google,语言默认英语 → 简体中文,点 Translate,页面实时显示进度。
预期输出:结束后得到两个文件——paper-mono.pdf(纯译文)和paper-dual.pdf(双语对照)。翻到公式区和表格区检查:公式应保持原样,表格不重排。
同一篇论文的原文与翻译后效果:
习惯命令行的话,pdf2zh paper.pdf -li en -lo zh一条命令同样跑,产物落在当前目录;一批文件用pdf2zh --dir 目录。Python 与 HTTP API 的接法见 docs/APIS.md。
从"只有我能用"到"别人也能用"
按网络范围分三档,从本机往外推。
本机
① 不用改,服务默认绑定 0.0.0.0、端口 7860 ② 浏览器打开 http://localhost:7860,能看到上传框 ③ 用完终端 Ctrl+C 停掉即可
局域网
① 不用改,把地址里的 localhost 换成这台机器的 IP ② 手机连同一 Wi-Fi 打开http://<机器IP>:7860,能进上传页 ③ 7860 被占用时pdf2zh -i --serverport 8080换端口,所有访问地址跟着改
公网
① 临时演示启动时加--share,会生成一个第三方隧道链接;长期服务用 Nginx 反向代理指到 7860 并配 SSL ② 在断网设备(手机开流量)上打开地址,页面能进 ③ ⚠️上线前必做:--authorized users.txt配登录认证,否则任何知道地址的人都能消耗你的翻译额度和机器资源
users.txt 每行一个用户名,密码:
admin,123456第二个参数还能传自定义auth.html改登录页样式,写法见 docs/ADVANCED.md 的 Authorization 一节。
你大概率会踩的坑
按踩中概率从高到低排:
- 你看到首次启动长时间卡住,日志停在模型下载 → 大概率是 Hugging Face 源在你的网络下不通 → 执行
export HF_ENDPOINT=https://hf-mirror.com再启动,模型下载成功后有缓存,之后不再卡。 - 你看到终端报端口占用、或页面一直打不开 → 大概率是 7860 被其他进程占了,或地址里还写着旧端口 → 执行
pdf2zh -i --serverport 8080换端口,访问地址同步改。 - 你看到本机能打开、局域网却打不开 → 大概率是防火墙或云控制台安全组没放行 7860 → 加一条 7860 入站规则,并确认地址用的是同网段的那块网卡 IP。
- 你看到换成
-s deepl后翻译没生效或报错 → 大概率是DEEPL_AUTH_KEY没 export 或变量名拼错 → 把服务配置写进config.json再用--config config.json启动,环境变量优先于文件,写死一处就不再丢。
参数速查
| 参数 | 作用 | 推荐值 | 不写的默认行为 |
|---|---|---|---|
-i | 启动网页界面 | 开启 | 纯命令行模式 |
-s | 翻译服务 | 默认 Google | |
-t | 并发线程数 | CPU 核数一半 | 4 线程 |
--serverport | 指定网页端口 | 7860 | 7860 |
--share | 生成临时公网链接 | 仅演示时用 | 不生成公网链接 |
--authorized | 访问认证 | users.txt | 无登录门槛 |
-li/-lo | 源/目标语言 | en / zh | 英 → 简中 |
--config | 指定配置文件 | config.json | 读 ~/.config/PDFMathTranslate/config.json |
完整参数说明见 docs/ADVANCED.md。
继续深入
- docs/ADVANCED.md(换 DeepL、Ollama 或本地模型、自定义提示词、配置文件全部细节都在这)
- docs/APIS.md(用 Python API 或 HTTP API 把翻译能力嵌进你自己的系统)
- docs/README_GUI.md(网页界面支持的全部语言列表,以及语言环境变量的含义)
【免费下载链接】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),仅供参考