news 2026/9/12 15:32:13

PDFMathTranslate 保版式 PDF 翻译:一条命令,公式图表原位保留

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 翻译英文论文,能拿到纯中文和中英双语两份 PDF,公式、图表、目录、注释完整保留在原位。你只需一条命令,不用配 key,10 分钟内出第一份译文。

它适合什么 / 不适合什么

✅ 适合:

  • 公式密集的英文论文:版面模型会区分正文和公式,译文回写原位,公式不变成乱码;
  • 需要中英对照的场景:一次产出dual双语文件,逐句对照阅读;
  • 整文件夹 PDF 批量翻译:--dir直接处理一个目录,不用逐个拖文件;
  • 不想装 Python:Windows 可直接用发布包的pdf2zh.exe,或 Docker 镜像。

⚠️ 不适合:

  • 扫描版、图片型 PDF:工具解析的是文本层,没有文字层就读不到内容;
  • 纯离线环境:默认翻译服务要联网;想离线,得换本地模型服务(见进阶);
  • 只想要一段文字翻译:它产出的是完整 PDF,不导出文本片段。

跑起来:安装 PDFMathTranslate 并翻译第一篇论文

环境要求 Python 3.11 或 3.12(见 pyproject.toml)。先安装:

pip install pdf2zh

把要翻译的文件放在当前目录,执行翻译:

pdf2zh paper.pdf

✅ 你会在当前目录得到两个文件:paper-mono.pdf(纯中文版)和paper-dual.pdf(中英双语对照版)。默认用 Google 翻译服务,不用配任何 API key;源语言和目标语言默认是enzh,可用-li-lo显式指定。

首次运行会自动下载版面分析模型wybxc/DocLayout-YOLO-DocStructBench-onnx(README 有写)。国内网络下载卡住时,先设镜像环境变量再运行:Windows 用set HF_ENDPOINT=https://hf-mirror.com,PowerShell 用$env:HF_ENDPOINT="https://hf-mirror.com"

想只试读前几页时,加-p传页码范围,比如pdf2zh paper.pdf -p 1-5。工具带翻译缓存,重复内容不会重复调 API,所以"先翻几页、满意再全量跑"没有额外成本。

进阶路径

路径 1|切换翻译服务:不依赖 Google 或走本地模型

-s参数切换服务:pdf2zh paper.pdf -s bing(免 key)、-s deepl-s openai-s ollama(本地模型,翻译环节不依赖外网)。除googlebing外,其他服务都需要先设环境变量,各服务对应的变量名有一张完整对照表,见 docs/ADVANCED.md。

路径 2|自定义提示词:固定术语统一译法

有固定术语(比如希望 mutant 一律译成"突变体")时,写一个提示词文件,用--prompt传入:

pdf2zh paper.pdf --prompt prompt.txt

模板支持${lang_in}${lang_out}${text}三个变量,格式示例见 docs/ADVANCED.md 的 Custom prompt 一节。改完提示词后记得加--ignore-cache,否则缓存会跳过重翻。

路径 3|批量处理:一个目录一次翻完

pdf2zh --dir /path/to/papers/ -o output/ -t 3

--dir传目录,-o指定输出目录,-t控制翻译线程数(默认 4)。产物是目录下每篇文件各一份monodual

路径 4|图形界面与 Docker 部署:团队共用不用碰命令行

pdf2zh -i

浏览器没自动弹出就访问http://localhost:7860/,在页面上选文件、选服务、下译文,详见 docs/README_GUI.md。要部署给团队共用,用官方镜像:

docker pull byaidu/pdf2zh docker run -d -p 7860:7860 byaidu/pdf2zh

👉 团队访问同一个http://localhost:7860/(服务器上对应服务器 IP)即可,不需要各自装 Python。

验证效果:翻译前后对比与项目背景

下面两张截图来自官方文档 docs/README_GUI.md:左边是英文原文,右边是翻译后的效果——正文变中文,双栏版式、正文公式、网络图和图注都还在原来的位置。

可以核实的三件事:

  • 论文被 EMNLP 2025 System Demonstrations 接收,摘要写明 PyPI 累计下载量超 22 万次,引用信息见 README.md;
  • 核心代码都在 pdf2zh/ 包里,版面解析在pdf2zh/pdfinterp.py,翻译调度在pdf2zh/translator.py,篇幅不长可以顺读;
  • Python 3.11 和 3.12 是硬性版本范围(requires-python = ">=3.11,<3.13",见 pyproject.toml)。

避坑清单:现象 → 对策

⚠️ 现象:翻出来的文件是空白或乱码 → 你给的是扫描版,没有文本层,先 OCR 成可复制文字的 PDF 再翻译。

⚠️ 现象:首次运行卡在模型下载 → 设HF_ENDPOINT=https://hf-mirror.com环境变量后重试;仍有其他网络问题查 docs/PROXY_CONFIGURATION.md。

⚠️ 现象:换了服务或提示词,译文却和上次一样 → 翻译缓存生效,加--ignore-cache强制重翻。

⚠️ 现象:输出 PDF 打开有字体兼容问题 → 加--skip-subset-fonts跳过字体子集化。

⚠️ 现象:配自定义 OpenAI 兼容接口报 404 → 检查BASE_URL是否以/v1结尾,这是文档标注的高频错误。

写在最后

今天就可以跑pip install pdf2zh,再执行pdf2zh paper.pdf,十分钟拿到第一份dual对照文件。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

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 15:31:47

27. 数据产品- BI 实战1-项目落地方法论

文章目录前言一、总述&#xff1a;BI 项目的底层逻辑 —— 天时、地利、人和是核心二、分述一&#xff1a;判断企业是否具备 BI 建设基础 —— 三大核心维度1. 天时&#xff1a;时机是否匹配企业发展阶段2. 地利&#xff1a;基础信息化与企业文化是否适配基础信息化系统&#x…

作者头像 李华
网站建设 2026/9/12 15:29:57

AI听声辨人:端侧实时语音分离技术解析

1. 项目概述&#xff1a;当物理干扰撞上AI语音分离&#xff0c;WX-0813不是在“降噪”&#xff0c;而是在“认人” 你有没有试过在厨房炒菜时开视频会议&#xff1f;锅铲敲打铁锅的“哐哐”声、抽油烟机的低频轰鸣、还有手机贴着灶台边缘被热气烘得发烫——这时候哪怕把麦克风音…

作者头像 李华
网站建设 2026/9/12 15:29:01

Ollama局域网部署大语言模型:多设备共享方案

1. 项目概述&#xff1a;局域网内共享主机模型的智能体部署方案在本地部署大语言模型&#xff08;LLM&#xff09;并实现多设备共享的场景中&#xff0c;我们常常面临两个核心矛盾&#xff1a;一方面需要充分利用主机的高性能硬件资源&#xff0c;另一方面又希望在不同终端设备…

作者头像 李华
网站建设 2026/9/12 15:26:55

wezterm.column_width:在 WezTerm Lua 脚本中精确测量终端文本列宽

wezterm.column_width&#xff1a;在 WezTerm Lua 脚本中精确测量终端文本列宽 【免费下载链接】wezterm A GPU-accelerated cross-platform terminal emulator and multiplexer written by wez and implemented in Rust 项目地址: https://gitcode.com/GitHub_Trending/we/w…

作者头像 李华
网站建设 2026/9/12 15:25:35

设计模式:模板方法模式(Template Method Pattern)

/*** 模板方法模式。* 模板方法模式在一个方法中定义算法的骨架&#xff0c;而将一些步骤延迟到子类中。* 模板方法使得子类可以在不改变算法结构的情况下&#xff0c;重新定义算法中的某些步骤。* author Bright Lee*/ public class TemplateMethodPattern {public static voi…

作者头像 李华
网站建设 2026/9/12 15:25:26

西门子PLC与伺服系统在自动上料机中的协同控制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华