一、背景介绍
随着考研的结束,论文写作也被广大毕业生提上了日程。论文写作第一步就是要进行选题,选题的基础是收集相关素材,进行文献研读,对于国外最新文献的阅读尤为重要。
此时,我们通常为了加快阅读的速度,把收集的pdf文献进行翻译后再次阅读,但是由于原论文中包含有很多Latex公式、表格、图片等信息,普通的翻译工具在翻译过程中会打乱原文献的排版和布局,导致翻译后的文本显得十分凌乱,不利于文献的快速阅读。
为了解决这个问题,今天给大家安利一款github上免费开源的Pdf翻译神器PDFMathTranslate,它采用Python语言编写,可以在翻译PDF的同时还能保留原有排版和 LaTeX 数学公式,让你轻松拿捏外文文献和图书的翻译和阅读。
二、特点优势
强大翻译能力:PDFMathTranslate是一个开源且免费的翻译工具,其最大特点是在翻译过程中能够保持原文的布局不变,完整保留公式、图表、目录和注释等结构信息。图表样式和嵌入内容完美复现,翻译不丢失信息。
多引擎集成:同时,它也集成了Google 翻译、DeepL、Azure、OpenAI、 Ollama、Kimi moonshot、智谱清言等多个智能翻译工具,支持中文、英语、日语等100多种语言的翻译,用户可以根据需要选择合适的翻译服务。
用户使用友好:支持命令行、交互网页、docker部署和调用方式,可以在dos命令行下进行快速翻译,也可以通过简单易用的UI界面,在本地快速执行翻译操作。该项目还提供了一个demo网站,网址是:PDFMathTranslate - PDF Translation with preserved forma,支持5M以下文件的翻译,翻译引擎只有Google。
demo网站
支持翻译格式多样:可以支持docx, epub, azw, azw3, txt, markdown, chm, rtf等常见的格式。还能够进行多个文件的批量翻译。
三、部署方法
1. 命令行法调用
1)首先要确保你的Python程序要在3.8——3.12之间,然后在命令行或者虚拟目录中通过以下命令进行安装:
pip install pdf2zh
2)cmd下通过以下命令对document.pdf进行翻译,命令行的指令格式如下:
命令行格式
如果我们要使用deepl进行前3页的翻译,源语是英语,目标语是中文就可以用以下代码:
pdf2zh document.pdf -s deepl -p 1-3 -li en -lo zh
如果是全文翻译就用如下指令,默认进行的英译中的翻译。
pdf2zh document.pdf
如果翻译部分页面,则可以使用以下命令。
pdf2zh example.pdf -p 1-3,5
2. 交互界面调用
如果想在本地使用,可以通过以下命令打开简易的交互界面。
pdf2zh -i
如果没有自动打开网页,就可以在浏览器中输入下面的网址,即可以打开本地的交互界面:http://127.0.0.1:7860/。然后把pdf文件拖拽到网页,选择翻译引擎和相关语对,就可以进行翻译:
网页调用
3. 便携式调用
可以把以下代码放到txt中保存为bat文件,然后放到指定的安装目录下执行。这个批处理命令可以检测本地是否有安装python3.12,没有的话就会自动安装,并执行pdf2zh模块的安装。最后打开网页交互模式。
@echo off
setlocal enabledelayedexpansion
set PYTHON_URL=https://www.python.org/ftp/python/3.12.7/python-3.12.7-embed-amd64.zip
set PIP_URL=https://bootstrap.pypa.io/get-pip.py
set HF_ENDPOINT=https://hf-mirror.com
set PIP_MIRROR=https://mirrors.aliyun.com/pypi/simple
if not exist pdf2zh_dist/python.exe (
powershell -Command "& {Invoke-WebRequest -Uri !PYTHON_URL! -OutFile python.zip}"
powershell -Command "& {Expand-Archive -Path python.zip -DestinationPath pdf2zh_dist -Force}"
del python.zip
echo import site >> pdf2zh_dist/python312._pth
)
cd pdf2zh_dist
if not exist Scripts/pip.exe (
powershell -Command "& {Invoke-WebRequest -Uri !PIP_URL! -OutFile get-pip.py}"
python get-pip.py
)
path Scripts
pip install --no-warn-script-location --upgrade pdf2zh -i !PIP_MIRROR!
pdf2zh -i
pause
四、翻译引擎及应用
项目自带多个翻译引擎,列表如下。由表可知Google, bing翻译引擎无需设置即可使用,Deepl, openai, AzureOpenAI等翻译即需要配置模型参数,设置api key等信息。
可以使用的翻译模型
五、参数详情及举例
在命令行下进行pdf翻译,需要配置一些参数,参数说明如下:
参数配置说明
使用-t可以指定线程,线程越多,速度可能就越快,如-t 2 表示使用2个线程。
pdf2zh example.pdf -t 1
使用 -s 来指定模型,如使用openai中的gpt-4o-mini模型,可以先通过set来设置模型:
set OPENAI_MODEL=gpt-4o-mini
pdf2zh documet.pdf -s openai:gpt-4o-mini
还可以通过正则表达式来排除翻译,如保留公式字体和字符可以采用下面的代码:
pdf2zh example.pdf -f "(CM[^RT].*|MS.*|.*Ital)" -c "(\(|\||\)|\+|=|\d|[\u0080-\ufaff])"
六、学后总结
1. PDFMathTranslate作为一款高效的文献和图书翻译工具,可以最大限度地:保留排版与样式,特别适合学术研究、论文阅读和电子书翻译,无论是科研工作者、教育从业者还是学生,都能通过这一工具提升工作效率,专注于更具价值的创造性工作。
2. 使用过程中注意一些参数和运行环境的配置,必要时需要添加openai等模型的api key等。