PDFMathTranslate 网页翻译服务部署指南:三步从本机到全网访问

发布时间:2026/9/1 11:54:23

PDFMathTranslate 网页翻译服务部署指南:三步从本机到全网访问
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团队里分享一篇论文用通用翻译工具把 PDF 翻成中文出来的公式、图表和目录却全乱掉了。PDFMathTranslate命令行名pdf2zh就是一个能完整保留排版与公式的 PDF 翻译工具并且自带基于 Gradio 的网页界面非常适合在局域网或公网给同事一起用。这篇文章按先选部署方式、再逐级扩大访问范围的路子走一遍先在本机把网页服务跑起来验证效果再开放给办公室局域网最后加上登录密码和域名 SSL 对外发布每一步都只给必要的命令。 先做选型你的机器适合哪种跑法在敲第一条命令之前先按手上有什么环境来选路线后面所有步骤都以这个选择为基础方案需要准备什么适合谁要注意什么pip install pdf2zhPython 3.11–3.12开发者、想随时改配置的人依赖装在系统环境里干净与否要自己负责Dockerbyaidu/pdf2zh只要 Docker服务器长期挂着的场景镜像首次拉取较慢国内网络慢时换源源码构建git Python 3.11–3.12需要改代码、看行为细节的人构建步骤最多新手不建议直接选它三种方式里个人试用选 pip 最快要挂到服务器上给团队用直接上 Docker环境隔离最省心。源码方式只需一条命令拿到代码git clone https://gitcode.com/GitHub_Trending/pd/PDFMathTranslate cd PDFMathTranslate▶️ 第一步本机启动网页版先确认效果以 pip 方式为例先装再跑pip install pdf2zh pdf2zh -i-i表示进入图形界面模式。启动完成后浏览器会自动打开若没反应手动访问http://localhost:7860/即可——7860是 Gradio 服务的默认端口后面所有网络配置都围绕它展开。把 PDF 拖进窗口、点 Translate翻译时程序会用一个版面检测模型先识别公式、表格区域所以首次启动会自动下载该模型。如果你的网络下载缓慢先设置 HF 镜像再启动export HF_ENDPOINThttps://hf-mirror.com # Windows 用 set HF_ENDPOINThttps://hf-mirror.com验证标准很简单翻完的文档里公式还是公式、目录还能点。对比一下翻前翻后的效果能直观看到排版被保留的程度Docker 路线则只需两行效果等价docker pull byaidu/pdf2zh docker run -d -p 7860:7860 byaidu/pdf2zh-p 7860:7860把容器内端口映射到本机 7860这样浏览器同样访问localhost:7860。项目里的 Dockerfile 与 docker-compose.yml 也给出了从源码构建的完整配置docker compose up -d即可。 第二步开放给局域网里的同事这一步很多人会卡住其实有个好消息pdf2zh -i启动的界面默认就绑定0.0.0.0见 pdf2zh/gui.py 中setup_gui的绑定逻辑也就是说同网段设备无需额外参数就能访问直接用http://服务器IP:7860/打开即可。真正需要做的是排查为什么连不上端口冲突7860 被占用时换一个pdf2zh -i --serverport 8080Docker 侧同步改成-p 8080:7860防火墙拦截本机防火墙如ufw放行 7860 的入站 TCP云服务器记得在安全组里同步放行Windows 绿色版从 Release 下载解压后双击pdf2zh.exe即可本机使用但它本质仍是单机应用团队共享请改用 pip 或 Docker 方式部署在一台固定机器上。判断是否成功的标准局域网里另一台设备的浏览器能打开页面且能完整翻译一次。到此为止办公网内共享 PDF 翻译的需求已经闭环。 第三步加一道登录门槛局域网内使用建议先到这一步为止只要准备跨网段或公网发布就必须先配账号否则任何拿到地址的人都能调用你的翻译服务。用--authorized指定一个用户文件# users.txt每行一个账号用户名,密码 echo admin,你的密码 users.txt pdf2zh -i --authorized users.txtDocker 方式则把用户文件挂进容器并改启动命令docker run -d -p 7860:7860 \ -v $(pwd)/users.txt:/app/users.txt \ byaidu/pdf2zh pdf2zh -i --authorized /app/users.txt挂载用户文件而不是把账号写死在命令里是为了之后加人时改文件重启即可不用动部署脚本。想要自定义登录页样式还可以在--authorized后追加一个auth.html格式参考 docs/ADVANCED.md 的 Authorization 一节。 第四步域名 SSL安全地开放公网公网访问不要直接把 7860 端口暴露出去而是让 Nginx 反向代理到本机服务。核心配置就一段server { listen 443 ssl; server_name translate.example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://127.0.0.1:7860; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 100M; # 网页上传 PDF 的体积上限 } }两个细节容易忽略client_max_body_size要留够否则上传稍大的 PDF 会被直接拒绝同时把 7860 端口从安全组/防火墙中移除公网放行只允许 Nginx 从127.0.0.1回源这是只暴露 443这一原则的关键。临时快速体验比如演示给客户看时可以用pdf2zh -i --share生成一个临时公网链接几分钟就能拿到 URL但它是短期隧道链接不适合长期服务。⚙️ 使用中的常用配置与排错服务跑起来之后日常用得最多的其实就三个参数-s切换翻译引擎如-s deepl、-s openai配合对应环境变量传入 API Key。引擎清单与配置方法见 docs/ADVANCED.md 的 services 一节-t翻译并发线程数设为 CPU 核数的一半左右即可开太大容易被翻译服务商限流--prompt加载自定义提示词文件支持${text}、${lang_in}、${lang_out}三个变量学术场景可以加一句保留公式与专业术语来稳定译文风格。翻译结果偶发乱码字体时加--skip-subset-fonts禁用字体子集化再试国内下载模型慢的问题前面HF_ENDPOINT那招同样适用于容器——在docker run时加-e HF_ENDPOINThttps://hf-mirror.com。收尾下一步做什么如果按上面的顺序做完你现在手里应该有一个本机可验证、局域网可达、带登录、可上公网的 PDF 翻译网页服务。接下来可以按需求继续想批量处理整个文献目录看 docs/ADVANCED.md 的批量翻译与缓存配置想把它接进自己的工作流docs/APIS.md 提供了 Python API 与 HTTP API 两种集成方式还在用 Zotero 管文献的话可以试试社区基于它做的 Zotero 插件在文献库里直接触发翻译。有任何参数拿不准项目文档的 docs/ADVANCED.md 是全量选项的权威出处建议收藏备用。【免费下载链接】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),仅供参考

相关新闻

怎么三步克隆自己的声音?OpenVoice 语音克隆完整新手教程

怎么三步克隆自己的声音?OpenVoice 语音克隆完整新手教程

2026/9/1 11:44:22

怎么三步克隆自己的声音?OpenVoice 语音克隆完整新手教程 【免费下载链接】OpenVoice Instant voice cloning by MIT and MyShell. Audio foundation model. 项目地址: https://gitcode.com/GitHub_Trending/op/OpenVoice 给视频配上自己的声音、让 AI 用你的…

基于微信小程序的垃圾分类系统springboot的设计与实现毕业设计项目源码

基于微信小程序的垃圾分类系统springboot的设计与实现毕业设计项目源码

2026/9/1 11:44:22

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

基于SpringBoot的课程知识图谱系统的设计与实现毕业设计项目源码

基于SpringBoot的课程知识图谱系统的设计与实现毕业设计项目源码

2026/9/1 11:44:22

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

迅为Topeet Toolbox:图形化工具简化嵌入式开发板系统配置与烧录

迅为Topeet Toolbox:图形化工具简化嵌入式开发板系统配置与烧录

2026/9/1 13:04:26

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

2023前端面试八股全解析:高频考点与底层原理精讲

2023前端面试八股全解析:高频考点与底层原理精讲

2026/9/1 13:04:26

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

连续投影算法(SPA)详解:光谱变量筛选原理与Python实战

连续投影算法(SPA)详解:光谱变量筛选原理与Python实战

2026/9/1 13:04:26

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

EBR-bench:以人类基线为锚,审视AI评测的真实差距

EBR-bench:以人类基线为锚,审视AI评测的真实差距

2026/9/1 13:04:26

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

智能体编程时代:从低代码到代码的软件工程技能图谱

智能体编程时代:从低代码到代码的软件工程技能图谱

2026/9/1 13:04:26

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

用技术验收思维拆解DD 5e跑团项目:从博德之门到阿弗纳斯

用技术验收思维拆解DD 5e跑团项目:从博德之门到阿弗纳斯

2026/9/1 12:54:26

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

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

2026/9/1 1:53:39

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

2026/9/1 9:55:14

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

2026/8/31 17:18:46

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

远程协作的工作台整理

远程协作的工作台整理

2026/9/1 0:03:36

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/1 0:03:36

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/1 0:03:36

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

远程协作的工作台整理

远程协作的工作台整理

2026/9/1 0:03:36

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/1 0:03:36

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/1 0:03:36

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…