如何保留公式与排版做 PDF 翻译:PDFMathTranslate 快速上手
2026/9/16 13:06:06 网站建设 项目流程

如何保留公式与排版做 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

拿到一篇 40 页的英文论文,公式占了一半,复制粘贴进翻译软件全是乱码?PDFMathTranslate(命令行名 pdf2zh)干的就是 PDF 翻译 保留公式这件事——全文翻译科学论文,输出时保持原版式的布局。

为什么它能翻译科学 PDF 而不弄坏公式

它不是把整页文字抽出来逐字丢给翻译引擎,而是先给页面拍一张"X 光片":内置版面模型把 PDF 的每个区域分成文字、公式、图片、表格、目录、页眉页脚,只把文字区域送去翻译。

先做版面检测,分清哪里是文字哪里是公式

首次运行会自动下载 DocLayout-YOLO 版面模型,逐页定位公式、图表、目录和注释的位置。公式和图片根本不进翻译流程,所以数学符号和编号原样保留。

只动文字:输入、处理、输出的完整链路

一份 PDF 进去,先分区域,文字送翻译服务(默认 Google,无需配置密钥),译文再写回原来的文字框。输入一次会生成两份产物:document-mono.pdf是纯译文,document-dual.pdf是中英对照版。

边界:纯图片扫描件要先 OCR

它解析的是 PDF 文本层,纯图片扫描版无法直接翻译,需要先装 OCR 附加包或自行 OCR(见 README.md 的实验性 OCR 一节)。

三步翻译你的第一份 PDF

确认你的 Python 版本在 3.11 到 3.12 之间,然后用一条命令装好:

pip install pdf2zh

装成功后你会得到一个全新的pdf2zh命令。接着进入 PDF 所在目录执行:

pdf2zh document.pdf

跑完你会看到当前目录多了两个文件:document-mono.pdf(纯译文)和document-dual.pdf(双语对照),双栏、公式编号和页眉页脚与原文逐页一致。首次运行稍慢,因为要下载版面模型。全部参数清单见 docs/ADVANCED.md。

按场景拆功能:四种常见需求

只翻译几页核对内容

只想快速看摘要和结论时,加-p指定页码范围,其余页保持原样:

pdf2zh example.pdf -p 1-3,5

成功后只有第 1、2、3、5 页被翻译。这个场景常配合的参数:

参数作用
-p仅翻译指定页码
-li/-lo源语言 / 目标语言
-t并发翻译线程数
--ignore-cache跳过缓存强制重新翻译

批量翻译整个文献文件夹

一次消化一整个文件夹的文献时,用--dir指向目录,用-o指定结果落盘位置:

pdf2zh --dir /path/to/papers -o results

成功后 results 目录里每个 PDF 都会生成对应的 mono 和 dual 两份文件。

切换翻译服务

Google 默认质量不满意时,用-s换服务,但要先设好环境变量:DeepL 需要DEEPL_AUTH_KEY服务密钥,OpenAI 兼容接口需要OPENAI_API_KEYOPENAI_BASE_URL

pdf2zh example.pdf -s openai:gpt-4o-mini

跑起来后就用指定模型完成翻译。各服务环境变量对照表见 docs/ADVANCED.md 的 "Translate with different services" 一节。

不想敲命令行

一条命令启动 Web 图形界面,拖入文件、配置服务、在浏览器里实时预览译文:

pdf2zh -i

随后打开 http://localhost:7860/ 即可使用;容器部署只需拉取byaidu/pdf2zh镜像并映射 7860 端口,另外pdf2zh --mcp还能把翻译能力作为 MCP 服务提供给 Claude Desktop。细节见 docs/README_GUI.md。

踩坑速查

  • 如果首次运行下载版面模型失败 → 大概率是网络到不了模型源 → 把HF_ENDPOINT环境变量指向镜像地址(见 README.md 的网络问题说明)
  • 如果 PDF 提不出任何文字、翻译没输出 → 它是纯图片扫描件、没有文本层 → 安装 OCR 附加包pip install 'pdf2zh[ocr]'或先自行 OCR
  • 如果公式或代码被"翻译"成了乱码 → 那个字体没进默认保留列表 → 用-f追加字体名正则,写法见 docs/ADVANCED.md 的 "Translate with exceptions" 一节
  • 如果同一份文件重跑还是旧译文 → 翻译缓存命中、跳过了 API 调用 → 加--ignore-cache强制重新翻译

接下来做两件事:

  1. 打开 docs/ADVANCED.md 的 "Full / partial translation" 一节,把-p--dir组合起来批量翻几页重点内容。
  2. 对照同文档 "Translate with different services" 一节的环境变量表,配一套 DeepL 或 Ollama 本地模型跑一次,对比默认 Google 的译文质量。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询