PDFMathTranslate: Star13.8k,一款基于AI的PDF文档全文双语翻译PDF文档全文双语翻译,保留格式神器,你应该需要它
嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法

PDFMathTranslate是一个开源项目,旨在为用户提供便捷的PDF科学论文翻译解决方案。它不仅能够翻译文本,还能保留公式、图表、目录和注释等元素,确保翻译后的文档与原文保持一致的阅读体验。

功能特点
-
保留格式:翻译后的文档能够完整保留原文件的公式、图表、目录和注释。
-
多语言支持:支持多种语言的翻译,满足不同用户的需求。
-
多样化翻译服务:集成了Google、DeepL、Ollama、OpenAI等翻译服务,用户可以根据需要选择。
-
多种使用方式:提供命令行工具、图形用户界面、Docker容器等多种使用方式。
使用方法
命令行工具
在安装了Python(版本在3.8到3.12之间)的环境中,可以通过以下命令安装PDFMathTranslate:
pip install pdfmathtranslate
然后,执行以下命令进行翻译:
pdf2zh example.pdf
这将在当前工作目录生成翻译后的文档example-mono.pdf和双语文档example-dual.pdf。
图形用户界面
如果你更喜欢图形界面,可以通过以下命令启动:
pdf2zh -i
如果浏览器没有自动打开,可以手动访问以下链接:
http://localhost:7860/
Docker使用
如果你熟悉Docker,可以使用以下命令拉取并运行容器:
docker pull byaidu/pdf2zh
docker run -d -p 7860:7860 byaidu/pdf2zh
然后在浏览器中访问:
http://localhost:7860/
高级选项

PDFMathTranslate提供了丰富的命令行选项,例如:
-
-p:进行部分文档的翻译。 -
-li:指定源语言。 -
-lo:指定目标语言。 -
-s:选择翻译服务。 -
-t:设置多线程翻译。
更多高级选项和详细使用方法,请参考官方文档。

在线服务
如果你不想在本地安装,可以直接使用以下在线服务:
-
公共免费服务
-
HuggingFace Demo
-
ModelScope Demo
请注意,在线服务的计算资源有限,请避免过度使用。
API服务
Pythone方式
from pdf2zh import translate, translate_streamparams = {"lang_in": "en", "lang_out": "zh", "service": "google", "thread": 4}
file_mono, file_dual = translate(files=["example.pdf"], **params)[0]
with open("example.pdf", "rb") as f:stream_mono, stream_dual = translate_stream(stream=f.read(), **params)
HTTP方式
pip install pdf2zh[backend]
pdf2zh --flask
pdf2zh --celery worker
curl http://localhost:11008/v1/translate -F "file=@example.pdf" -F "data={\"lang_in\":\"en\",\"lang_out\":\"zh\",\"service\":\"google\",\"thread\":4}"
{"id":"d9894125-2f4e-45ea-9d93-1a9068d2045a"}curl http://localhost:11008/v1/translate/d9894125-2f4e-45ea-9d93-1a9068d2045a
{"info":{"n":13,"total":506},"state":"PROGRESS"}curl http://localhost:11008/v1/translate/d9894125-2f4e-45ea-9d93-1a9068d2045a
{"state":"SUCCESS"}curl http://localhost:11008/v1/translate/d9894125-2f4e-45ea-9d93-1a9068d2045a/mono --output example-mono.pdfcurl http://localhost:11008/v1/translate/d9894125-2f4e-45ea-9d93-1a9068d2045a/dual --output example-dual.pdfcurl http://localhost:11008/v1/translate/d9894125-2f4e-45ea-9d93-1a9068d2045a -X DELETE
同类项目
-
DocTranslator:一个在线文档翻译工具,支持多种文件格式,但可能无法保留复杂的排版格式。
-
Papago:由韩国NAVER公司开发的在线翻译服务,支持文档翻译,但同样在格式保留方面有所限制。
-
DeepL Translate:一个广受好评的在线翻译服务,提供高质量的翻译,但需要手动复制粘贴文本进行翻译。
与这些项目相比,PDFMathTranslate在保留原文排版格式方面具有明显优势,是阅读和翻译科学论文的理想选择。
结语
PDFMathTranslate是一个强大的PDF文档翻译工具,无论你是科研工作者、学生还是对科学论文感兴趣的普通读者,它都能帮助你跨越语言障碍,更好地理解和研究科学论文。快来尝试这个项目,让你的阅读和研究更加高效吧!
项目地址
https://github.com/Byaidu/PDFMathTranslate
相关文章:
PDFMathTranslate: Star13.8k,一款基于AI的PDF文档全文双语翻译PDF文档全文双语翻译,保留格式神器,你应该需要它
嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 PDFMathTranslate是一个开源项目,旨在为用户提供便捷的PDF科学论文翻译解决方案。它不仅能够翻译文本,还能保留公式、图表、目…...
Python编程实例-特征向量与特征值编程实现
特征向量与特征值编程实现 文章目录 特征向量与特征值编程实现1、什么是特征向量2、特征向量背后的直觉3、为什么特征向量很重要?4、如何计算特征向量?4、特征向量Python实现5、可视化特征向量6、总结线性代数是许多高级数学概念的基石,广泛应用于数据科学、机器学习、计算机…...
Vue3-跨层组件通信Provide/Inject机制详解
Vue 3 中的 Provide 和 Inject 机制是专为跨层级传递数据而设计的,适用于祖先组件和后代组件之间的通信。与props 和 emits 不同,Provide/Inject 可以跨越多个层级进行数据传递,而不需要逐层传递。 1. Provide provide 是一个在祖先组件中提…...
Linux Jar包定时重启脚本,按最新时间的Jar包启动
Linux Jar包定时重启脚本,按最新时间的Jar包启动 jar包按时间顺序命名如下: park-system-1.1.0-SNAPSHOT_20210101.jar park-system-1.1.0-SNAPSHOT_20210402.jar park-system-1.1.0-SNAPSHOT_20220520.jar 则该脚本默认启动时间最大的一个:park-system-1.1.0-SNAPSHOT_2022…...
HTML5实现好看的博客网站、通用大作业网页模板源码
HTML5实现好看的博客网站、通用大作业网页模板源码 前言一、设计来源1.1 主界面1.2 列表界面1.3 文章界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 HTML5实现好看的博客网站、通用大作业网页模板源码,博客网站源码,HTML模板源码࿰…...
掌握RabbitMQ:全面知识点汇总与实践指南
前言 RabbitMQ 是基于 AMQP 高级消息队列协议的消息队列技术。 特点:它通过发布/订阅模型,实现了服务间的高度解耦。因为消费者不需要确保提供者的存在。 作用:服务间异步通信;顺序消费;定时任务;请求削…...
go如何从入门进阶到高级
针对Go语言的学习,不同阶段应采取不同的学习方式,以达到最佳效果.本文将Go的学习分为入门、实战、进阶三个阶段,下面分别详细介绍 一、社区 Go语言中文网 作为专注于Go语言学习与推广的平台,Go语言中文网为开发者提供了丰富的中…...
在环境冲突情况下调整优先级以解决ROS Catkin构建中缺少模块的问题【ubuntu20.04】
在机器人操作系统(ROS)的开发过程中,构建工作空间时遇到各种依赖性问题是常见的挑战之一。尤其是在多Python环境共存的情况下,环境变量的冲突往往导致诸如缺少empy模块等错误。本文将详细介绍在ROS Noetic与Anaconda Python环境共…...
github 个人主页配置
Guthub 个人主页 (官方称呼是 profile)可以展示很多有用的信息,例如添加一个首页被访问次数的计数器,一个被 Star 与 Commit 的概览信息,以及各种技能标签,设备标签等,还可以利用 wakatime 显示…...
STM32-笔记30-编程实现esp8266联网功能
串口2连接ESP8266模块 复制项目文件34-ESP8266串口间的通信 重命名为35-编程实现ESP8266联网功能 打开项目文件 main.c #include "sys.h" #include "delay.h" #include "led.h" #include "uart1.h" #include "esp8266.h"…...
oscp备考 oscp系列——Kioptix Level 1靶场 古老的 Apache Vuln
目录 前言 1. 主机发现 2. 端口扫描 3. 指纹识别 4. 目录扫描 5. 漏洞搜索和利用 前言 oscp备考,oscp系列——Kioptix Level 1靶场 Kioptix Level 1难度为简单靶场,主要考察 nmap的使用已经是否会看输出,以及是否会通过应用查找对应漏…...
《机器学习》——随机森林
文章目录 什么是随机森林?随机森林的原理随机森林的优缺点优点缺点 随机森林模型API主要参数 实例实例步骤导入数据处理数据,切分数据构建模型训练模型测试数据并输出分类报告和混淆矩阵画出模型的前十重要性的特征 扩展 什么是随机森林? -随…...
指代消解:自然语言处理中的核心任务与技术进展
目录 前言1. 指代消解的基本概念与分类1.1 回指与共指 2. 指代消解的技术方法2.1 端到端指代消解2.2 高阶推理模型2.3 基于BERT的模型 3. 事件共指消解:跨文档的挑战与进展3.1 联合模型3.2 语义嵌入模型(EPASE) 4. 应用场景与前景展望4.1 关键…...
记录一下Unity webgl cannot read properties of undefined reading apply 错误
出现这个问题说明你Build 文件夹的内容和最新的打包内容冲突了 解决方法是把Build文件夹里面的东西全部删了 然后使用Unity重新生成这些文件 后续发现还是有这个问题 然后想了一下本地冲突应该在前端吧本地的文件删了重新拉取服务器的文件才行 以下是解决方法 <script t…...
【C语言程序设计——选择结构程序设计】求阶跃函数的值(头歌实践教学平台习题)【合集】
目录😋 任务描述 相关知识 1. 选择结构基本概念 2. 主要语句类型(if、if-else、switch) 3. 跃迁函数中变量的取值范围 4. 计算阶跃函数的值 编程要求 测试说明 通关代码 测试结果 任务描述 本关任务:输入x的值&#x…...
unity 播放 序列帧图片 动画
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、方法一:代码控制播放序列帧1、设置图片属性2、创建Image组件3、简单的代码控制4、挂载代码并赋值 二、方法二:直接使用1.Image上添加…...
HTML - <a>
目录 1.简介 2.属性 2.1 href 2.2 hreflang 2.3 title 2.4 target 2.5 rel 2.6 referrerpolicy 2.7 ping 2.8 type 2.9 download 3.邮件链接 4.电话链接 1.简介 链接(hyperlink)是互联网的核心。它允许用户在页面上,从一个网址…...
Unity学习笔记(六)使用状态机重构角色移动、跳跃、冲刺
前言 本文为Udemy课程The Ultimate Guide to Creating an RPG Game in Unity学习笔记 整体状态框架(简化) Player 是操作对象的类: 继承了 MonoBehaviour 用于定义游戏对象的行为,每个挂载在 Unity 游戏对象上的脚本都需要继承自 MonoBehaviour&#x…...
【C++数据结构——树】二叉树的遍历算法(头歌教学实验平台习题) 【合集】
目录😋 任务描述 相关知识 1. 二叉树的基本概念与结构定义 2. 建立二叉树 3. 先序遍历 4. 中序遍历 5. 后序遍历 6. 层次遍历 测试说明 通关代码 测试结果 任务描述 本关任务:实现二叉树的遍历 相关知识 为了完成本关任务,你需要掌…...
Android Telephony | 协议测试针对 test SIM attach network 的问题解决(3GPP TS 36523-1-i60)
背景 除了运营商实网卡之外,在各种lab的协议测试中需要 follow 3GPP 协议定义(可以查询3gpp.org website 获取),那么 feature 需要支持覆盖的卡就不止运营商本身了。 本文介绍 IA APN流程,重点关注在协议/lab测试中,针对测试卡、非实网卡的的设置项,记录遇到的问题分…...
成本管理化技术中的成本估算成本控制成本优化
成本管理化技术中的成本估算、成本控制与成本优化 在现代企业管理中,成本管理化技术是提升企业竞争力的关键手段。成本估算、成本控制与成本优化作为其核心环节,直接影响企业的盈利能力和可持续发展。无论是制造业、服务业还是互联网行业,精…...
uniapp video播放海康RTSP流避坑指南:从黑屏、卡死到稳定运行12小时+
Uniapp视频监控开发实战:海康RTSP流长期稳定播放的工程化解决方案 在智能安防和工业物联网领域,实时视频监控的稳定性直接关系到业务连续性。当开发者选择Uniapp跨平台方案接入海康威视设备时,RTSP流媒体处理往往成为技术攻坚的重点。本文将分…...
OpCore Simplify:让普通用户也能轻松完成黑苹果系统配置的终极指南
OpCore Simplify:让普通用户也能轻松完成黑苹果系统配置的终极指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpCore Simplify 是一款…...
Python敏感性分析的完整指南:SALib库的终极应用
Python敏感性分析的完整指南:SALib库的终极应用 【免费下载链接】SALib Sensitivity Analysis Library in Python. Contains Sobol, Morris, FAST, and other methods. 项目地址: https://gitcode.com/gh_mirrors/sa/SALib SALib是一个功能强大的Python库&am…...
WuliArt Qwen-Image Turbo快速体验:输入提示词,几秒获得1024高清大作
WuliArt Qwen-Image Turbo快速体验:输入提示词,几秒获得1024高清大作 1. 引言:从想法到画面的极速通道 你有没有过这样的经历?脑子里突然冒出一个绝妙的画面,想把它变成一张图片,结果要么被复杂的AI绘画工…...
解决uniapp离线打包白屏报错的实战指南
1. 离线打包白屏报错现象解析 第一次遇到uniapp离线打包白屏问题时,我和大多数开发者一样手足无措。控制台不断刷新的红色错误日志让人头皮发麻,其中最典型的莫过于"spinWaitPeer timeout"和"framework.js uninitialized"这两类报错…...
新手必看:GD32单片机GPIO输入配置与按键检测实战(Keil5工程详解)
1. GPIO输入模式基础认知 第一次接触GD32单片机的GPIO输入功能时,我对着数据手册发呆了半小时——浮空、上拉、下拉这些专业术语看得人头晕。直到亲手用面包板接了个按键电路才恍然大悟:GPIO输入本质上就是个电子开关状态检测器。想象你面前有个电灯开关…...
Python的__complex__方法支持复数的实部虚部访问与运算重载
Python作为一门功能强大的编程语言,其面向对象特性允许开发者通过特殊方法自定义类的行为。其中,__complex__方法为复数运算提供了灵活的支持,使得开发者能够轻松实现复数的实部虚部访问与运算重载。复数在科学计算、信号处理等领域有着广泛应…...
Text-to-CAD UI:重构机械设计流程的数字化转型方案
Text-to-CAD UI:重构机械设计流程的数字化转型方案 【免费下载链接】text-to-cad-ui A lightweight UI for interfacing with the Zoo text-to-cad API, built with SvelteKit. 项目地址: https://gitcode.com/gh_mirrors/te/text-to-cad-ui 在工程制造领域&…...
Phi-4-mini-reasoning Chainlit多语言支持:中英文混合推理界面实现
Phi-4-mini-reasoning Chainlit多语言支持:中英文混合推理界面实现 1. 模型简介 Phi-4-mini-reasoning 是一个基于合成数据构建的轻量级开源模型,专注于高质量、密集推理的数据处理能力。作为Phi-4模型家族的一员,它特别针对数学推理能力进…...
