[EMNLP 2025 Demo] PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/MCP/Docker/Zotero
EMNLP 2025 demo tool for format-preserving bilingual PDF translation with CLI/GUI/MCP/Docker.
- ✓Open-source license (AGPL-3.0)
- ✓Actively maintained (<30d)
- ✓Healthy fork ratio
- ✓Clear description
- ✓Topics declared
- ✓Mature repo (>1y old)
{
"mcpServers": {
"pdfmathtranslate": {
"command": "python",
"args": ["-m", "uv"]
}
}
}~/Library/Application Support/Claude/claude_desktop_config.json (Mac) or %APPDATA%\Claude\claude_desktop_config.json (Windows).<placeholder> values with your API keys or paths.Subagents overview
<div align="center">
<a href="https://go.warp.dev/PDFMathTranslate" target="_blank">
<sup>Special thanks to:</sup>
<br>
<img alt="Warp sponsorship" width="400" src="https://github.com/warpdotdev/brand-assets/blob/main/Github/Sponsor/Warp-Github-LG-02.png">
<br>
<h>Warp, built for coding with multiple AI agents</b>
<br>
<sup>Available for macOS, Linux and Windows</sup>
</a>
</div>
<br>
<div align="center">
English | [简体中文](docs/README_zh-CN.md) | [繁體中文](docs/README_zh-TW.md) | [日本語](docs/README_ja-JP.md) | [한국어](docs/README_ko-KR.md)
<img src="./docs/images/banner.png" width="320px" alt="PDF2ZH"/>
<h2 id="title">PDFMathTranslate</h2>
<p>
<!-- PyPI -->
<a href="https://pypi.org/project/pdf2zh/">
<img src="https://img.shields.io/pypi/v/pdf2zh"></a>
<a href="https://pepy.tech/projects/pdf2zh">
<img src="https://static.pepy.tech/badge/pdf2zh"></a>
<a href="https://hub.docker.com/r/byaidu/pdf2zh">
<img src="https://img.shields.io/docker/pulls/byaidu/pdf2zh"></a>
<a href="https://hellogithub.com/repository/8ec2cfd3ef744762bf531232fa32bc47" target="_blank"><img src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=8ec2cfd3ef744762bf531232fa32bc47&claim_uid=JQ0yfeBNjaTuqDU&theme=small" alt="Featured|HelloGitHub" /></a>
<a href="https://gitcode.com/Byaidu/PDFMathTranslate/overview">
<img src="https://gitcode.com/Byaidu/PDFMathTranslate/star/badge.svg"></a>
<a href="https://huggingface.co/spaces/reycn/PDFMathTranslate-Docker">
<img src="https://img.shields.io/badge/%F0%9F%A4%97-Online%20Demo-FF9E0D"></a>
<a href="https://www.modelscope.cn/studios/AI-ModelScope/PDFMathTranslate">
<img src="https://img.shields.io/badge/ModelScope-Demo-blue"></a>
<a href="https://github.com/Byaidu/PDFMathTranslate/pulls">
<img src="https://img.shields.io/badge/contributions-welcome-green"></a>
<a href="https://t.me/+Z9_SgnxmsmA5NzBl">
<img src="https://img.shields.io/badge/Telegram-2CA5E0?style=flat-squeare&logo=telegram&logoColor=white"></a>
<!-- License -->
<a href="./LICENSE">
<img src="https://img.shields.io/github/license/Byaidu/PDFMathTranslate"></a>
</p>
<a href="https://trendshift.io/repositories/12424" target="_blank"><img src="https://trendshift.io/api/badge/repositories/12424" alt="Byaidu%2FPDFMathTranslate | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
</div>
<h2 id="updates">1. What does this do?</h2>
Scientific PDF document translation preserving layouts.
- 📊 Preserve formulas, charts, table of contents, and annotations.
- 🌐 Support [multiple languages](#usage), and diverse [translation services](#usage).
- 🤖 Provides [commandline tool](#usage), [interactive user interface](#install), and [Docker](#install)
<div align="center">
<img src="./docs/images/preview.gif" width="80%"/>
</div>
<h2 id="updates">2. Recent Updates</h2>
- [March 23, 2026] Experimental support for v2.0 translation kernel using isolated environment (`--mode precise`). (by [@reycn](https://github.com/reycn))
- [March 22, 2026] Supporting MiniMax (PR by [@octo-patch](https://github.com/octo-patch))
- [March 22, 2026] Fixing OpenAI-related issues (PR by [@samqin123](https://github.com/samqin123))
- [March 22, 2026] Fixing HTTP-related issues (PR by [@soukouki](https://github.com/soukouki))
- [March 22, 2026] Faster model loading on mac and OONX platforms, GUI starting-up, version printing, and continuous integration.(by [@reycn](https://github.com/reycn))
- [May 9, 2025] pdf2zh 2.0 Preview Version [#586](https://github.com/Byaidu/PDFMathTranslate/issues/586): The Windows ZIP file and Docker image are now available.
> [!NOTE]
>
> 2.0 Moved to a new repository under the organization: [PDFMathTranslate/PDFMathTranslate-next](https://github.com/PDFMathTranslate/PDFMathTranslate-next)
>
> Version 2.0 official release has been published.
<h2 id="use-section">3. Use 🌟</h2>
<h3 id="demo">3.1 Online Service 🌟</h3>
You can try our application out using either of the following demos:
- [Public free service](https://pdf2zh.com/) online without installation _(recommended)_.
- [Immersive Translate - BabelDOC](https://app.immersivetranslate.com/babel-doc/) Free usage quota is available; please refer to the FAQ section on the page for details. _(recommended)_
- [Demo hosted on HuggingFace](https://huggingface.co/spaces/reycn/PDFMathTranslate-Docker)
- [Demo hosted on ModelScope](https://www.modelscope.cn/studios/AI-ModelScope/PDFMathTranslate) without installation.
Note that the computing resources of the demo are limited, so please avoid abusing them.
<h3 id="install">3.2 Local Installation</h3>
For different use cases, we provide distinct methods to use our program:
<details open>
<summary>3.2.1 Python: Install using uv</summary>
1. Python installed (3.11 <= version <= 3.12)
2. Install our package:
```bash
pip install uv
uv tool install --python 3.12 pdf2zh
```
3. Execute translation, files generated in [current working directory](https://chatgpt.com/share/6745ed36-9acc-800e-8a90-59204bd13444):
```bash
pdf2zh document.pdf
```
</details>
<details>
<summary>3.2.2 Python: Install using pip</summary>
1. Python installed (3.11 <= version <= 3.12)
2. Install our package:
```bash
pip install pdf2zh
```
3. Execute translation, files generated in [current working directory](https://chatgpt.com/share/6745ed36-9acc-800e-8a90-59204bd13444):
```bash
pdf2zh document.pdf
```
</details>
<details>
<summary>3.3.3 Python: Graphic user interface</summary>
1. Python installed (3.11 <= version <= 3.12)
2. Install our package:
```bash
pip install pdf2zh
```
3. Start using in browser:
```bash
pdf2zh -i
```
4. If your browser has not been started automatically, goto
```bash
http://localhost:7860/
```
<img src="./docs/images/gui.gif" width="500"/>
See [documentation for GUI](./docs/README_GUI.md) for more details.
</details>
<details>
<summary>3.2.4 Application: On Windows</summary>
1. Download pdf2zh-version-win64.zip from [release page](https://github.com/Byaidu/PDFMathTranslate/releases)
2. Unzip and double-click `pdf2zh.exe` to run.
> [!TIP]
>
> - If you're using Windows and cannot open the file after downloading, please install [vc_redist.x64.exe](https://aka.ms/vs/17/release/vc_redist.x64.exe) and try again.
>
</details>
<details>
<summary>3.2.5 Reference manager: Zotero Plugin</summary>
See [Zotero PDF2zh](https://github.com/guaguastandup/zotero-pdf2zh) for more details.
</details>
<details>
<summary>3.2.6 Docker: Containerized Deployment</summary>
1. Pull and run:
```bash
docker pull byaidu/pdf2zh
docker run -d -p 7860:7860 byaidu/pdf2zh
```
2. Open in browser:
```
http://localhost:7860/
```
For docker deployment on cloud service:
<div>
<a href="https://www.heroku.com/deploy?template=https://github.com/Byaidu/PDFMathTranslate">
<img src="https://www.herokucdn.com/deploy/button.svg" alt="Deploy" height="26"></a>
<a href="https://render.com/deploy">
<img src="https://render.com/images/deploy-to-render-button.svg" alt="Deploy to Koyeb" height="26"></a>
<a href="https://zeabur.com/templates/5FQIGX?referralCode=reycn">
<img src="https://zeabur.com/button.svg" alt="Deploy on Zeabur" height="26"></a>
<a href="https://template.sealos.io/deploy?templateName=pdf2zh">
<img src="https://sealos.io/Deploy-on-Sealos.svg" alt="Deploy on Sealos" height="26"></a>
<a href="https://app.koyeb.com/deploy?type=git&builder=buildpack&repository=github.com/Byaidu/PDFMathTranslate&branch=main&name=pdf-math-translate">
<img src="https://www.koyeb.com/static/images/deploy/button.svg" alt="Deploy to Koyeb" height="26"></a>
</div>
> [!TIP]
>
> - If you cannot access Docker Hub, please try the image on [GitHub Container Registry](https://github.com/Byaidu/PDFMathTranslate/pkgs/container/pdfmathtranslate).
> ```bash
> docker pull ghcr.io/byaidu/pdfmathtranslate
> docker run -d -p 7860:7860 ghcr.io/byaidu/pdfmathtranslate
> ```
</details>
<details>
<summary>3.2.* Solutions for network issues in installation</summary>
Users in specific regions may encounter network difficulties when loading the AI model. The current program relies on the AI model (`wybxc/DocLayout-YOLO-DocStructBench-onnx`), and some users are unable to download it due to these network issues.
To address issues with downloading this model, use the following environment variable as a workaround:
```shell
set HF_ENDPOINT=https://hf-mirror.com
```
For PowerShell user:
```shell
$env:HF_ENDPOINT = https://hf-mirror.com
```
If the solution does not work to you / you encountered other issues, please refer to [Frequently Asked Questions](https://github.com/Byaidu/PDFMathTranslate/wiki#-faq--%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98).
</details>
<h2 id="usage">4. Technical Details</h2>
### 4.1 Advanced options
Execute the translation command in the command line to generate the translated document `example-mono.pdf` and the bilingual document `example-dual.pdf` in the current working directory. Use Google as the default translation service. More support translation services can find [HERE](https://github.com/Byaidu/PDFMathTranslate/blob/main/docs/ADVANCED.md#services).
<img src="./docs/images/cmd.explained.png" width="580px" alt="cmd"/>
In the following table, we list all advanced options for reference:
| Option | Function | Example |
| --------------------- | ------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- |
| files | Local files | `pdf2zh ~/local.pdf` More Subagents
The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
Java 面试 & 后端通用面试指南,覆盖计算机基础、数据库、分布式、高并发、系统设计与 AI 应用开发
Production-ready platform for agentic workflow development.
The agent engineering platform
The agent that grows with you
RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs