ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

PDFMathTranslate 从零部署:完整保留排版的 PDF 全文翻译服务实战

PDFMathTranslate 从零部署:完整保留排版的 PDF 全文翻译服务实战

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 一节。

你大概率会踩的坑

按踩中概率从高到低排:

  1. 你看到首次启动长时间卡住,日志停在模型下载 → 大概率是 Hugging Face 源在你的网络下不通 → 执行export HF_ENDPOINT=https://hf-mirror.com再启动,模型下载成功后有缓存,之后不再卡。
  2. 你看到终端报端口占用、或页面一直打不开 → 大概率是 7860 被其他进程占了,或地址里还写着旧端口 → 执行pdf2zh -i --serverport 8080换端口,访问地址同步改。
  3. 你看到本机能打开、局域网却打不开 → 大概率是防火墙或云控制台安全组没放行 7860 → 加一条 7860 入站规则,并确认地址用的是同网段的那块网卡 IP。
  4. 你看到换成-s deepl后翻译没生效或报错 → 大概率是DEEPL_AUTH_KEY没 export 或变量名拼错 → 把服务配置写进config.json再用--config config.json启动,环境变量优先于文件,写死一处就不再丢。

参数速查

参数作用推荐值不写的默认行为
-i启动网页界面开启纯命令行模式
-s翻译服务google默认 Google
-t并发线程数CPU 核数一半4 线程
--serverport指定网页端口78607860
--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),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进