🎉 无需安装 Python · 无需配置环境 · 下载解压双击就能用!
🖥️ 支持 Windows + macOS 双平台
📘 强烈推荐先看 → 完整图文使用教程(macOS)真实截图 · 每一步带红圈编号 · 配 API · 扫描件处理 · 常见问题 |
![]() ① 主界面 · 拖入 PDF · 选语言 · 一键开始 |
![]() ② 阅读页 · 中外对照 · AI 助手自动解读论文 |
快速开始 · 功能特性 · 翻译服务 · Zotero 联动 · 更新日志 · English
💬 用户交流群(QQ):1094195179(pdf2zh桌面版交流群)
基于 PDFMathTranslate(EMNLP 2025)打造,在原项目基础上大幅增强桌面体验。
让学术 PDF 翻译变得像复制粘贴一样简单——公式、图表、排版全部完美保留 ✨
还在为翻译一篇论文折腾 Python 环境?还在对着黑窗口敲命令行?
桌面版帮你把这些烦恼统统打包带走 👋
| 原版(Web/CLI)🖥️ | ✨ 桌面版 | |
|---|---|---|
| 安装方式 | 需要 Python + pip 😵 | 解压即用 🎁 |
| 操作界面 | 浏览器 / 终端 | 原生桌面 GUI 🪟 |
| 翻译预览 | 浏览器内查看 | 内置 PDF 连续滚动预览 👁️ |
| 批量处理 | 命令行参数 | 拖放文件/文件夹一键操作 🖱️ |
| Zotero 联动 | 不支持 | 拖论文进来 → 译文自动回写 📚 |
| 离线能力 | 不支持 | 程序本体完全离线 📴 |
- 📦 完全独立打包:Python 3.12 运行时 + 所有依赖全部内置,不污染你的系统
- 🖱️ 告别命令行:全图形化操作,拖拽文件就能翻译
- 🔧 智能错误诊断:出问题?程序自动弹窗告诉你怎么修
- 💼 真·便携版:拷贝到 U 盘带着走,换台电脑照样用
- 📄 1000+ 页的大部头轻松拿下
- 🧩 分块翻译:自动分块逐段翻译,超过 50 页自动开启
- 🧠 智能内存管理:逐页释放布局数组,即使上千页也不会内存溢出
- ⏯️ 断点续传——中途退出也不怕,下次自动接着翻
- 📜 扫描版 PDF 支持:自动覆盖底图原文
- 📊 独立表格翻译管线:专利、检测报告等表格密集文件
- 🔍 OCR 识别:内置 RapidOCR,纯图片扫描件自动识别并翻译
- 🧩 20+ 预设模型:DeepSeek V3/R1、GPT-4o、GLM-4、Gemini、Mistral、Ollama 等,下拉框直接选
- 🔧 OpenAI 兼容格式:17 个快捷预设一键配置任何兼容接口
- 🔗 一键测试连接:填完配置立即验证,通过后自动保存
- 📝 自定义提示词:内置风格模板 + 自定义保存/导入/导出
- 📚 术语库:5 个学科内置(计算机/医学/金融/法律/电气),支持 txt/csv/json 导入
- 🚫 译文更干净:所有 OpenAI 兼容服务(含硅基流动等自定义接口)都会自动挡掉模型夹带的「(注:…)」译者注/前言废话
- 🧠 DeepSeek V4 默认直出:自动关闭 V4 的思考模式,翻译更快更稳,不会把推理过程混进译文
- 🌐 自动识别源语言:打开 PDF 自动检测,自动设置翻译方向
- 📄 自动检测扫描件:纯图片 PDF 自动开启 OCR
- ✅ 翻译前预检:API Key / 加密 / 语言检查
- ⏱️ 预估剩余时间:窗口标题显示进度百分比
- 💾 崩溃恢复:异常退出后下次启动自动恢复
- 🔔 自动检查更新:启动后台静默检测新版本,只提示不自动下载替换文件
- 🔗 自动检测:从 Zotero 拖入 PDF 或条目,自动识别来源
- 📎 自动关联:翻译完成后译文自动添加为 Zotero 附件,不留冗余副本
- 🔌 一键安装插件:设置页一键安装 pdf2zh Connector,开箱即用
- 📐 格式多选:左右并排 / 双语对照 / 仅译文,任意组合放回 Zotero
- 🖱️ 右键直接翻译:Zotero 里对 PDF 右键 → 「用 pdf2zh-desktop 翻译」,格式跟随右键菜单选择
- 🌙 后台静默翻译:右键菜单勾选后不弹窗、不抢焦点,翻完自动关窗
- 👀 连续滚动预览:懒加载,大文档不卡
- 📐 自适应显示:适应宽度 / 适应高度 / 最佳适配
- 🗂️ 完整翻译历史,右键菜单打开目录/复制路径
- 🔍 预览首页:先翻一页看效果,满意再翻全文
- 📝 翻译完成后自动打开输出文件
- 🖱️ 拖放支持:文件、文件夹、Zotero 条目直接拖入窗口
- 📂 统一文件管理:浏览文件(多选)、浏览文件夹、一键清空
- 🔄 批量翻译失败项标红,支持一键重试
| 平台 | 下载 | 大小 | 启动方式 |
|---|---|---|---|
| 🪟 Windows | pdf2zh-desktop-win-v2.3.9.zip |
~287MB | 解压 → 双击 pdf2zh.exe |
| 🍎 macOS | pdf2zh-desktop-mac-v2.3.9.zip |
~228MB | 解压 → 双击 pdf2zh.app |
- Windows:解压后看到多个文件,多种方式并存,按需选——
- 🟢 推荐 / 最省心:直接双击
pdf2zh.exe,不需要任何安装步骤,解压即用,首次使用和日常使用都是这一个 - 🟢 等价备选:
pdf2zh.vbs(无控制台窗口)/pdf2zh.bat(保留控制台便于看输出),效果和pdf2zh.exe完全一样,个人喜好选一个 - 🟡 想要桌面图标 / 开始菜单,建议做一次:双击
install.bat(顺带自动检查/安装 VC++ 运行库;跑完就没用了,不做也完全不影响用pdf2zh.exe正常使用,只是桌面上不会有图标) - 🟡 遇到问题:双击
debug_start.bat(看启动日志)或diagnostic.bat(系统诊断);改设置用config_manager.bat - 🔴 卸载:双击
uninstall.bat ⚠️ install.bat/uninstall.bat/debug_start.bat/diagnostic.bat/config_manager.bat这几个是批处理脚本,v2.3.9 起已修复中文 Windows 上的编码乱码问题;pdf2zh.exe/pdf2zh.vbs不受此类问题影响,追求最稳就选它们
- 🟢 推荐 / 最省心:直接双击
- macOS:双击
pdf2zh.app;首次启动若提示「已损坏,无法打开」,终端跑一行:xattr -cr /Applications/pdf2zh.app,或 Finder 里右键 → 打开
拖入 PDF → 选翻译服务 → 点「开始翻译」→ 搞定!🎉
💡 小贴士:Google / Bing 翻译免费无需配置,打开就能用!
⚠️ 请从 Releases 页面 下载,不要点 Source code。
| 类型 | 服务 |
|---|---|
| 🆓 免费 | Google 翻译、Bing 翻译 |
| 🔑 API Key | OpenAI、DeepL、DeepLX、DeepSeek、Gemini、Azure |
| 🇨🇳 国内服务 | 智谱 GLM、硅基流动、腾讯翻译、阿里 Qwen-MT |
| 🏠 本地部署 | Ollama、Xinference、Argos Translate(完全离线) |
| 🔧 其他 | Dify、AnythingLLM、Grok、Groq、OpenAI 兼容格式 |
支持语言:中文(简繁)、英、日、韩、法、德、俄、西、意、葡、荷、波兰、土耳其、阿拉伯、泰、越南、印尼、马来、印地、孟加拉、乌克兰、捷克、瑞典、丹麦、芬兰、希腊、希伯来、匈牙利、罗马尼亚、老挝、高棉、缅甸、格鲁吉亚 等
- 📝
文件名-mono.pdf— 纯译文版 - 📖
文件名-dual.pdf— 双语对照版 ↔️ 文件名-side_by_side.pdf— 左原文右译文(推荐)
从 Zotero 拖论文到 pdf2zh → 翻译 → 译文自动出现在 Zotero 附件栏
- 设置页 → Zotero 联动 → 「一键安装 Zotero 插件」→ Zotero 重启
- 从 Zotero 拖条目或 PDF 附件到 pdf2zh 窗口
- 翻译 → 译文自动关联为 Zotero 附件,标题带格式标签(如
side by side - 论文名)
不需要每次操作,插件只装一次。没装 Zotero 的用户完全不受影响。
更快的方式:Zotero 里右键直接翻译
不用打开 pdf2zh,在 Zotero 里对着 PDF 右键 → 「📖 用 pdf2zh-desktop 翻译」即可,格式跟随右键菜单选择。右键菜单还能勾选「后台静默翻译」——不弹窗、不抢焦点,翻完自动关窗,适合批量挂后台处理。
| 快捷键 | 功能 |
|---|---|
Ctrl+T / ⌘T |
开始翻译 |
Ctrl+O / ⌘O |
打开文件 |
← → |
PDF 翻页 |
Ctrl+滚轮 |
缩放预览 |
F11 |
全屏 |
| 参数 | 说明 |
|---|---|
| 🌐 源语言 / 目标语言 | 35 种语言,自动检测 |
| 📃 页面范围 | 全部、仅首页、前 5 页、自定义 |
| 🔄 翻译完成后自动打开 | 默认开启 |
| 🧩 分块翻译 | 大文件自动分块,超 50 页自动开启 |
| 📜 扫描版 PDF | 覆盖底图原文 |
| 📊 翻译表格内容 | 独立管线,按单元格翻译 |
| 🔍 OCR 识别 | 纯图片扫描件自动识别 |
| 📝 自定义提示词 | 控制 AI 翻译风格 |
| 📚 术语库 | 专业术语对照,支持 txt/csv/json |
| 项目 | Windows | macOS |
|---|---|---|
| 💿 操作系统 | Windows 10/11 64 位 | macOS 13.0+ |
| 🧠 内存 | 4 GB 起步(大文档建议 8 GB) | 4 GB 以上 |
| 💾 磁盘 | ~750 MB | ~750 MB |
| 🌐 网络 | 使用在线翻译服务时需联网 | 同左 |
| 🍎 芯片 | — | Apple Silicon (M 系列) |
| 😰 遇到了啥? | 💡 这样解决 |
|---|---|
| 双击 vbs 报"不兼容" | Windows 11 24H2 废弃了 VBScript,请改用 pdf2zh.bat |
| macOS 提示"无法验证开发者" | 右键 → 打开 → 确认(仅需一次) |
| 翻译中途断了 | 检查磁盘空间,重启后自动从缓存续接 |
| 排版错乱 / 乱码 | 试试勾选「跳过字体子集」 |
| 大文档内存不足? | 勾选「分块翻译」,设置合适的块大小 |
| 扫描版原文和译文重叠? | 勾选「扫描版 PDF」 |
| PDF 丢进去秒结束? | 勾选「OCR 识别」 |
| 专利表格不翻译? | 勾选「翻译表格内容」 |
| 怎么用 DeepSeek? | 选 DeepSeek → 填 API Key → 选模型 |
| 怎么用自己的 API? | 选「OpenAI 兼容格式」→ 快捷预设一键配置 |
| 怎么保证术语准确? | 展开「术语库」→ 选学科模板或自定义 |
| Zotero 翻译后没显示附件? | 安装 pdf2zh Connector 插件 |
- 🐛 修复自定义名称的 Zotero 数据目录不回写:之前抠条目号的正则把数据目录名写死成"Zotero",用户把数据目录改名(如
E:\Zotero文档\storage、D:\我的文献\storage)后就匹配失败、被当成非 Zotero 文件跳过。改成不认目录名、只认storage\<条目号>\这个 Zotero 真正特征 - 🐛 修复"C 盘 D 盘各有一个 Zotero 库"时查错库导致不回写:把数据目录搬到别处(如 D 盘)、默认位置(C 盘)还残留旧库时,之前是"按哪个库条目多用哪个"来猜,会挑错到残留的旧库 → 链接文件/Attanger 附件在活动库里查得到、在旧库里查不到 → 不回写。现在改成认准 Zotero 配置文件(
prefs.js)里指定的活动数据目录 - 🔧 回写失败提示改清晰:插件没响应时明确提示"多半是插件旧版被 Zotero 禁用,请到设置页更新插件",不再显示过时的 xpi 文件名
- 🐛 修复"链接文件"型 Zotero 附件翻译后不回写:之前整套回写只认"导入存储"型附件(文件被 Zotero 复制进
Zotero/storage/<条目号>/里,靠路径抠出条目号)。但用了 ZotFile / Attanger、或选了"链接到文件"、或设了附件基目录的用户,PDF 是"链接文件"型——留在自己的目录里、不在 storage 下,路径抠不到条目号,于是界面显示不出条目名、回写被直接跳过(同学反馈"有的能回写、有的显示不了条目就不能回写")。现在加了数据库反查兜底:路径抠不到时,去 Zotero 库里按文件真实路径反查它的条目号(覆盖 storage / 绝对路径 / 附件基目录相对路径三种),存储型附件走原逻辑不变。已在真实 Windows + Attanger 环境验证
- 🐛 修复 Zotero 升级到 10 后回写失效:Connector 插件(pdf2zh-connector-v1.0.19 及更早)的 manifest 里把兼容上限写死成
strict_max_version: "9.*",Zotero 升级到 10 后会被判定为不兼容,直接整个禁用插件——用户端表现是"翻译完不回写到 Zotero",且没有任何报错(因为插件从一开始就没启动,HTTP 端点根本没注册)。现在改成不设兼容上限("*"),并把版本升到 v1.0.20;已装旧版插件的用户下次 Zotero 自动检查更新时会自动升级,不需要手动重装。受影响的用户如果等不及自动更新,可以去 Zotero「工具→附加组件」手动禁用/删除旧版 pdf2zh Connector 后,到 pdf2zh-desktop「设置」页重新一键安装
- ✨ PDF 预览右键菜单新增旋转:新增"顺时针旋转"/"逆时针旋转",方便核对表格等内容的排版方向是否正确;只影响预览显示,不修改 PDF 文件本身;切到新文件会自动重置旋转角度;旋转状态下暂不支持高亮框选(屏幕坐标到 PDF 坐标的换算目前只按缩放算,没考虑旋转,避免高亮位置算错)
- 🔧 表格翻译改用 PyMuPDF
insert_htmlbox插入译文:一次性解决三个长期存在的表格排版问题——① 之前手写的字号估算和实际排版有偏差,同一张表里长短不一的译文字号此起彼伏,现在用scale_low=0让 PyMuPDF 按真实字体度量自动缩放;② 之前整段文字只能整体选中文或西文字体,中英混排内容要么中文变问号、要么英文字母间距被拉得很宽,现在按字符自动做中西文字体回退;③ 旋转方向经过与原表格未改动内容逐字比对校准,不再出现"有的顺时针有的逆时针" - 🐛 修复表格翻译导致输出文件暴涨到几百 MB:
insert_htmlbox每次调用都会给中文内容独立内嵌一份完整字体子集、不会跨单元格复用,一张表几十上百个格子就是几十上百份几乎重复的字体数据;加上原来用增量保存(saveIncr)不做垃圾回收,实测 166 个单元格能把 5.85MB 的文件撑到 313MB。现在改成完整重写并加garbage=4垃圾回收合并重复对象,同样的内容文件只多出几 MB - 🔧 修复部分学术论文里 "≥" 等数学符号因源 PDF 字体编码缺陷被提取成 "$"、进而被翻译成"⋯美元"这种莫名其妙的措辞(原理与已知的 "45°" 提取成 "�" 是同一类源文件缺陷,通过识别"整份文档里只产出这一个可疑字符"的嵌入符号字体来定位并修正,不会误伤表格里真实的美元金额)
- 🔧 表格翻译支持整表旋转排版:部分学术论文的表格整体旋转 90°(不只是列标题,连数据单元格都是转向的),之前译文一律横排插入,方向和原表格对不上,还会跟相邻格子重叠成一团。现在会识别每个单元格的真实排版方向,译文按相同方向旋转插入
- 🔧 修复统计区间数值(如 "87.2 (81.8–91.2)")被翻译服务做无意义换行重排,触发没必要的重新插入、和相邻单元格挤在一起
- 🔧 修复译文字号忽大忽小:改成以单元格原文字号封顶,不再各自独立按译文长度反推字号
- 🔧 新增
--tables=<页码>命令行参数,供自动化测试/脚本化调用(例如 Zotero 联动)勾选表格翻译并指定页码
- 🔧 表格翻译结果改为持久弹窗提示:之前不管表格翻译成功还是失败,都只往状态栏发一条一闪而过的文字,很快被"翻译完成"覆盖掉,用户基本看不到——这正是 v2.3.11 那个"勾了却悄无声息失败"问题真正没堵上的部分。现在翻译完成后,如果表格翻译遇到问题、没检测到表格、或检测到表格但没有单元格被翻译,都会弹出一个不会自动消失的提示,说明具体原因(
--auto/Zotero 无人值守唤起时改为写入调试日志,不弹窗阻塞)
- ✨ 表格翻译支持单独指定页码:正文可以整篇正常翻译(页码范围不受限),同时单独框出"只对第几页做表格单元格翻译",两者互不影响。留空则跟随主翻译的页码范围(v2.3.11 行为不变)
- 🔧 修复"翻译表格内容"选项勾了也不生效:Mac 端表格翻译走的是一套独立实现,固定调用需要单独配置 API Key 的"AI 助手"服务,和主界面选的翻译服务(哪怕是完全不需要 Key 的 Google/Bing)是两回事;没配这个额外 Key 时每个单元格都会静默失败、界面上毫无提示。现已改成直接复用主翻译服务,不再需要额外配置
- 🔧 同时修复:纯数字/日期单元格(如"893"、"2021")不再被误翻译;译文字号改成按文本量自适应,减少挤成一堆换行的情况;表格翻译现在会遵守主翻译设定的页码范围,不再无视页码限制扫全篇
- 🔧 修复竖排表格翻译后文字乱序堆叠(issue #28):论文里常见的旋转 90° 的竖排表头,此前会被版面检测误判成"同一个公式"整体拼接,导致相距很远的多个旋转单词挤在一起、文字被拆散;同时旋转角度本身也没有被保留,画出来是正立字母摞成一列。现已分别修复:按字符间距强制断段 + 保留原始旋转矩阵,竖排表格恢复正常显示
- 🔧 修复 Windows 安装脚本乱码崩溃:
install.bat等批处理脚本在部分中文 Windows 上会因编码问题乱码崩溃(详见下方「启动」章节说明);同时调整首次启动的推荐方式,pdf2zh.exe现在是首选,install.bat降级为可选的快捷方式创建工具
- 🔧 修复某些 PDF 翻译到一半崩溃:论文附录里常见的小尺寸图表页,会因版面检测分辨率过低导致底层 ONNX 报错(
TopK k argument...),使整个翻译任务崩溃;现已修复,正常页面不受影响
- 🔧 Zotero 写回不再留冗余文件:之前译文会先复制进原文献的 Zotero storage 文件夹再关联附件,关联成功后那份复制品就成了没人引用的孤儿文件。现在直接从本地输出路径关联,只有关联失败时才会保留一份本地兜底副本,绝不误删翻译产物
- 🔧 修复 xpi 自动更新地址配置错误(之前一直指向别的项目,形同虚设),Connector 插件升到 v1.0.19
- ✨ 新增桌面 App 检查更新:启动后台静默检测新版本,只提示不自动下载替换任何文件
- 🔧 修复自定义 / OpenAI 兼容 API(含硅基流动等)译文混入译者注:给所有 OpenAI 兼容服务加上强约束提示词 + 输出兜底清洗,不再冒出「(注:…)」这类多余解释(#27)
- 🔧 修复 DeepSeek V4 翻译问题:V4 系列裸调默认走「思考模式」导致翻译慢/偶发漏译/费用上涨,现自动关闭思考模式退回直出;默认模型换成
deepseek-v4-flash
- 🔧 Zotero 右键翻译格式选择修复:之前无论选哪种格式,回写 Zotero 的都只有中外并排,现在严格跟随右键菜单选择
- ✨ 新增后台静默翻译:Zotero 右键菜单可勾选,翻译时不弹窗不抢焦点,完成后自动关窗
- ✨ 新增 Zotero 右键翻译:不用打开 pdf2zh,Zotero 里对 PDF 右键直接翻译,自动作为子附件加回原文献
- ✨ 支持单文件输出格式选择(仅并排 / 仅双语 / 仅译文)
- Zotero 条目/PDF 附件拖拽识别(解析 x-moz-custom-clipdata MIME)
- 翻译完成自动回写 + 通过插件自动关联附件
- 一键安装 pdf2zh Connector 插件(自动写 extensions.json + 重启 Zotero)
- 附件标题带格式标签(
side by side - 论文名) - 智能数据目录检测(读 prefs.js 自定义路径 + 多磁盘扫描 + 选最大库)
- 支持内置存储 / 绝对链接 / 相对链接三种附件格式
- 全新 UI(克莱因蓝配色 + 圆角卡片 + 微软雅黑)
- API 配置改为悬浮弹窗,切换服务零跳动
- 提示词 / 术语库改为弹窗编辑
- 连续滚动 PDF 预览(懒加载)
- 标签页三等分 + 使用说明标签页
- 字号切换(小/中/大)
- 缩略图面板自适应 + 页码标注
- 历史记录防抖 + 右键菜单(打开目录/复制路径)
- 翻译完成自动清空文件列表
- 窗口自适应屏幕分辨率
- 独立表格翻译管线(按单元格翻译 + 自适应字号)
- 独立图注翻译管线
- 35 种语言支持 + 源语言自动识别
- 自动检测扫描件 + 翻译前预检
- 预估剩余时间 + 崩溃恢复 + 批量失败重试
- 修复取消翻译闪退
- 修复 ollama 导入阻塞(延迟导入)
- OnnxRuntime 8 秒超时机制
- PDF 预览快速切换 150ms 防抖
- 历史记录 200ms 防抖
- 删除/清空历史不再闪退
- 首个功能完整版本
- 20+ 翻译服务 + AI 配置面板
- OCR / 表格翻译 / 扫描版支持
- 术语库 + 自定义提示词
- 连续滚动预览 + 拖放 + 批量翻译
- 首个公开发布版本
桌面版作者:@AaronGIG (CAS)
桌面版的独立打包、GUI 增强、便携化改造、Zotero 联动等功能由 AaronGIG (CAS) 与 Claude (Anthropic AI) 协作开发完成 🤖✨
核心翻译引擎:PDFMathTranslate(EMNLP 2025),感谢原项目的贡献 🤝

