发现一款国人开发的基于AI完整保留排版的PDF文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务。
github地址:https://github.com/Byaidu/PDFMathTranslate
特点如下:
保留公式、图表、目录和批注(预览版)。
支持多种语言,以及多样化的翻译服务。
提供命令行工具、交互式用户界面和容器化运行
安装和使用
我们提供了三种使用该项目的方法:命令行工具、便携式安装、图形交互界面 和 容器化部署。
一、命令行工具
1.确保安装了版本大于 3.8 且小于 3.12 的 Python
2.安装此程序:
pip install pdf2zh
3.执行翻译,生成文件位于 当前工作目录:
pdf2zh document.pdf
二、便携式安装
无需预先安装 Python 环境
下载 setup 文件,解压后点击 setup.bat 并双击运行
发行版:https://github.com/Byaidu/PDFMathTranslate/releases
三、图形交互界面
1.确保安装了版本大于 3.8 且小于 3.12 的 Python
2.安装此程序:
pip install pdf2zh
3.开始在浏览器中使用:
pdf2zh -i
4.如果您的浏览器没有自动启动并跳转,请用浏览器打开:
http://localhost:7860/
四、容器化部署
1.拉取 Docker 镜像并运行:
docker pull byaidu/pdf2zh
docker run -d -p 7860:7860 byaidu/pdf2zh
2.通过浏览器打开:
http://localhost:7860/
高级选项
在命令行中执行翻译命令,在当前工作目录下生成译文文档 example-zh.pdf 和双语对照文档 example-dual.pdf,默认使用 Google 翻译服务
下表中列出了所有高级选项,以供参考:
Option | Function | Example |
---|---|---|
files | 本地文件 | pdf2zh ~/local.pdf |
links | 在线文件 | pdf2zh http://arxiv.org/paper.pdf |
-i |
进入图形界面 | pdf2zh -i |
-p |
仅翻译部分文档 | pdf2zh example.pdf -p 1 |
-li |
源语言 | pdf2zh example.pdf -li en |
-lo |
目标语言 | pdf2zh example.pdf -lo zh |
-s |
指定翻译服务 | pdf2zh example.pdf -s deepl |
-t |
多线程 | pdf2zh example.pdf -t 1 |
-o |
输出目录 | pdf2zh example.pdf -o output |
-f , -c |
例外规则 | pdf2zh example.pdf -f "(MS.*)" |
全文或部分文档翻译
全文翻译
pdf2zh example.pdf
部分翻译
pdf2zh example.pdf -p 1-3,5
指定源语言和目标语言
参考 Google Languages Codes, DeepL Languages Codes
pdf2zh example.pdf -li en -lo ja
使用不同的翻译服务
下表列出了每个翻译服务所需的 环境变量,在使用相应服务之前,请确保已设置这些变量
Translator | Service | Environment Variables | Default Values | Notes |
---|---|---|---|---|
Google (Default) | google | None | N/A | None |
Bing | bing | None | N/A | None |
DeepL | deepl | DEEPL_SERVER_URL ,DEEPL_AUTH_KEY | https://api.deepl.com , [Your Key] | See DeepL |
DeepLX | deeplx | DEEPLX_ENDPOINT | https://api.deepl.com/translate | See DeepLX |
Ollama | ollama | OLLAMA_HOST , OLLAMA_MODEL | http://127.0.0.1:11434 , gemma2 | See Ollama |
OpenAI | openai | OPENAI_BASE_URL , OPENAI_API_KEY , OPENAI_MODEL | https://api.openai.com/v1 , [Your Key] , gpt-4o-mini | See OpenAI |
AzureOpenAI | azure-openai | AZURE_OPENAI_BASE_URL , AZURE_OPENAI_API_KEY , AZURE_OPENAI_MODEL | [Your Endpoint] , [Your Key] , gpt-4o-mini | See Azure OpenAI |
Zhipu | zhipu | ZHIPU_API_KEY , ZHIPU_MODEL | [Your Key] , glm-4-flash | See Zhipu |
Silicon | silicon | SILICON_API_KEY , SILICON_MODEL | [Your Key] , Qwen/Qwen2.5-7B-Instruct | See SiliconCloud |
Azure | azure | AZURE_ENDPOINT , AZURE_API_KEY | https://api.translator.azure.cn , [Your Key] | See Azure |
Tencent | tencent | TENCENTCLOUD_SECRET_ID , TENCENTCLOUD_SECRET_KEY | [Your ID] , [Your Key] | See Tencent |
使用 -s service 或 -s service:model 指定翻译服务:
pdf2zh example.pdf -s openai:gpt-4o-mini
或者使用环境变量指定模型:
set OPENAI_MODEL=gpt-4o-mini
pdf2zh example.pdf -s openai
指定例外规则
使用正则表达式指定需保留的公式字体与字符:
pdf2zh example.pdf -f "(CM[^RT].*|MS.*|.*Ital)" -c "(\(|\||\)|\+|=|\d|[\u0080-\ufaff])"
翻译后的效果:
翻译后的pdf页面(一)
总体格式页没有太乱,还是很不错的。
原创文章,作者:howkunet,如若转载,请注明出处:https://www.intoep.com/othen/64577.html