夜雨聆风学习资料网

ARTICLE · 1050121

Zotero + PDF2zh 实战:Windows 环境下配置双语 PDF 翻译

Zotero + PDF2zh 实战:Windows 环境下配置双语 PDF 翻译

但在实际阅读论文的过程中,一个非常现实的问题是:

如何在 Zotero 中直接完成英文 PDF 的翻译,并生成可以进行原文与译文对照阅读的双语 PDF?

这篇文章将以 Windows 为例,从零开始搭建一套:

Zotero + PDF2zh + AI 翻译模型

的论文双语翻译环境。

整个过程会涉及:

Windows   ↓Python   ↓uv / Python 翻译环境   ↓PDF2zh Server   ↓Zotero PDF2zh 插件   ↓AI 翻译 API   ↓双语 PDF

本文使用的是 PDF2zh 当前新版安装架构。项目目前将 Server、Zotero 插件和 Python 翻译环境分开维护,普通用户不需要手工指定 pdf2zh_next、BabelDOC、PyMuPDF 等底层组件的版本。


一、最终能够实现什么?

配置完成以后,我们可以直接在 Zotero 中选择一篇英文论文,然后调用 PDF2zh 进行翻译。

整体效果类似:

英文论文 PDF      ↓   Zotero      ↓   PDF2zh      ↓  AI 翻译模型      ↓生成翻译后的 PDF      ↓返回 Zotero

根据具体翻译模式,可以生成不同的阅读形式,例如:

英文原文+中文译文

也可以根据 PDF2zh 支持的布局模式进行双语排版。

新版配置文档中已经支持 LR 左右对照、TB 上下交替等双语布局方式。


二、开始之前需要准备什么?

在 Windows 上配置之前,建议准备以下环境:

1. Windows 电脑

Windows 10 / Windows 11 均可以作为基础环境。


2. Zotero

当前 PDF2zh 项目文档列出的支持范围包括:

  • Zotero 7
  • Zotero 8
  • Zotero 9
  • Zotero 10

具体版本兼容性建议以项目当前 Release 和文档为准。


3. Python

当前项目安装文档推荐:

Python 3.12

如果电脑中已经安装其他 Python 版本,也建议不要随意删除现有环境。

后续可以让 PDF2zh 自己管理翻译环境。


4. AI 翻译服务

还需要准备一个能够提供翻译能力的服务。

例如:

DeepSeekOpenAIOpenAI-compatible API智谱阿里云等

当前 PDF2zh 文档明确列出了多种翻译服务,并支持 OpenAI 兼容格式。


三、为什么新版 PDF2zh 不建议手动安装一大堆依赖?

这是很多 Windows 用户第一次安装时最容易踩坑的地方。

旧教程经常会看到:

pip install pdf2zhpip install BabelDOCpip install PyMuPDF

甚至还需要自己创建多个虚拟环境。

但当前 PDF2zh 的新版 Server 已经对翻译环境进行了重新设计。

普通用户主要需要:

Python+Server+uv / conda

第一次真正执行翻译时,Server 会负责创建或使用对应的 Python 翻译环境,并安装兼容版本的 pdf2zh_next 及相关依赖。

所以:

不要看到网上旧教程就照着手动安装所有底层组件。

否则很容易出现版本冲突。


四、第一步:检查 Windows 的 Python

首先打开 Windows 命令提示符。

推荐使用:

Win + R

输入:

cmd

然后回车。

也可以直接在开始菜单搜索:

命令提示符

检查 Python

输入:

python --version

如果看到类似:

Python 3.12.x

说明 Python 已经可以使用。

也可以进一步执行:

where python

查看 Python 的实际位置。

例如:

C:\Users\xxx\AppData\Local\Programs\Python\Python312\python.exe

五、第二步:安装 uv

新版 PDF2zh 推荐使用 uv 管理 Python 翻译环境。

在 Windows PowerShell 中可以使用项目文档提供的安装命令:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

安装完成以后,重新打开命令行。

执行:

uv --version

如果能够正常显示版本号:

uv x.x.x

说明 uv 已经安装成功。


六、为什么推荐 uv?

因为 PDF2zh 的翻译环境并不是简单的:

一个 Python 文件

而是包含多个依赖组件。

如果全部安装到系统 Python 中,很容易出现:

A项目需要版本1B项目需要版本2C项目需要版本3

最后形成依赖冲突。

而使用虚拟环境以后,可以形成:

系统 Python     │     ├── 其他项目环境     │     ├── Zotero PDF2zh 环境     │     └── 其他 Python 项目

互相隔离。

这也是为什么 PDF2zh 新版推荐使用 uv 或已有的 conda 环境。


七、第三步:下载 PDF2zh Server

接下来下载 PDF2zh 的 Server。

建议直接从项目最新 Release 获取 server.zip,而不是直接下载 GitHub main 分支中的源码压缩包。

项目当前文档提供的下载方式是:

https://github.com/guaguastandup/zotero-pdf2zh/releases/latest/download/server.zip

下载后解压。

推荐建立一个比较容易管理的目录,例如:

D:\ZoteroExt\zotero-pdf2zh\

解压以后形成:

D:\ZoteroExt\zotero-pdf2zh\└── server\    ├── server.py    ├── requirements.txt    ├── update_packages.py    ├── config\    └── utils\

这是当前 Server 的基本目录结构。


八、第四步:安装 Server 运行依赖

进入 Server 目录:

cd /d D:\ZoteroExt\zotero-pdf2zh\server

然后执行:

python -m pip install -r requirements.txt

这里需要注意:

这一阶段主要安装的是 Server 本身运行所需要的依赖。

不要看到没有安装 pdf2zh_next 就手动执行:

pip install pdf2zh_next

新版 Server 会管理真正的翻译环境。


九、第五步:启动 PDF2zh Server

进入:

server

目录后执行:

python server.py

正常情况下,Server 会启动本地服务。

默认地址:

http://127.0.0.1:8890

其中:

127.0.0.1

代表:

当前这台电脑。

而:

8890

则是 PDF2zh Server 默认使用的端口。

当前版本默认只监听本机 localhost。


十、为什么必须保持 Server 运行?

这里是很多新用户容易忽略的问题。

Zotero 插件本身并不是完整的 PDF 翻译引擎。

可以简单理解成:

Zotero  ↓插件  ↓本地 Server  ↓翻译环境  ↓AI API

所以:

如果 Server 没有启动,Zotero 插件就无法正常提交翻译任务。

因此在使用 PDF2zh 翻译时,需要保持:

python server.py

对应的服务持续运行。

官方文档也明确提醒,翻译期间需要保持 server.py 运行。


十一、第六步:安装 Zotero PDF2zh 插件

接下来打开 Zotero。

进入:

工具 → 插件

然后将下载的:

zotero-pdf-2-zh.xpi

直接拖进插件窗口。

安装完成以后重新启动 Zotero。

当前项目文档提供的最新 XPI 下载地址为:

https://github.com/guaguastandup/zotero-pdf2zh/releases/latest/download/zotero-pdf-2-zh.xpi

安装步骤就是:

下载 XPI ↓Zotero → 工具 → 插件 ↓拖入 XPI ↓安装 ↓重启 Zotero

十二、第七步:检查 Zotero 与 Server 是否连接成功

重新打开 Zotero。

进入:

工具  ↓PDF2zh 首选项

找到:

Python Server IP

默认填写:

http://127.0.0.1:8890

如果你没有修改 Server 端口,就不需要修改这里。

然后使用插件提供的连接检查功能。

如果连接正常,就说明:

Zotero    ↓PDF2zh 插件    ↓本地 Server

已经打通。

当前配置文档也明确将 http://127.0.0.1:8890 作为默认 Server 地址。


十三、第八步:配置 AI 翻译模型

完成本地环境以后,下一步就是配置翻译服务。

这一步决定了:

PDF2zh 使用哪个 AI 模型进行翻译。

通常需要配置:

API 地址API Key模型名称

例如:

API Base URLAPI KeyModel

不同服务的配置方式可能不同。

当前 PDF2zh 支持:

DeepSeekOpenAIOpenAI Compatible智谱阿里云

等服务。


十四、以 OpenAI-Compatible API 为例

很多第三方 AI 服务会提供:

OpenAI API 兼容接口

这种情况下,一般可以配置:

Base URLAPI KeyModel

例如逻辑结构:

PDF2zh   │   ├── Base URL   │   ├── API Key   │   └── Model          ↓     AI 服务

需要注意:

“兼容 OpenAI API”并不意味着所有参数都 100% 一致。

部分服务可能只兼容:

/chat/completions

而不支持其他接口或参数。

因此,如果出现:

401404400429

需要结合服务商 API 文档进行排查。


十五、以 DeepSeek 为例

如果使用 DeepSeek,需要重点确认:

API KeyModelEndpoint

是否正确。

PDF2zh 当前版本已经针对 DeepSeek V4 提供了相关支持,包括:

deepseek-v4-prodeepseek-v4-flash

并且支持 Thinking 模式配置。项目文档指出,PDF 翻译默认关闭 DeepSeek Thinking。

对于普通论文翻译来说,可以先使用默认配置。

等基础环境稳定以后,再根据实际翻译质量和成本调整高级参数。


十六、API Key 一定不要泄露

这是配置 AI API 时必须强调的问题。

例如:

sk-xxxxxxxxxxxxxxxx

这样的内容属于 API 凭证。

不要:

❌ 发到微信群❌ 发到 QQ 群❌ 发到公众号截图❌ 发到 GitHub❌ 直接放进教程图片

如果制作教程截图:

sk-xxxxxxxxxxxx

建议处理成:

sk-****************

当前 PDF2zh 新版本也加强了 API Key / token 日志脱敏,并默认让 Server 只监听 localhost。


十七、第九步:第一次翻译论文

环境配置完成后,就可以进行第一次测试。

建议:

第一次不要直接选择一篇 100 页的论文。

最好选择:

5~10页

左右的普通英文论文。

原因很简单:

如果第一次翻译失败,我们可以快速判断问题到底出在哪里。


操作流程

在 Zotero 中:

选择论文 ↓找到 PDF ↓右键 ↓PDF2zh ↓选择翻译

根据当前插件支持情况,也可以对多个条目进行批量 PDF 翻译。


十八、第一次翻译为什么可能特别慢?

第一次翻译和第二次翻译的情况可能不同。

新版 Server 在首次真正调用翻译环境时,可能需要:

创建环境 ↓下载依赖 ↓安装 pdf2zh_next ↓检查运行环境 ↓启动翻译

因此第一次可能明显比较慢。

这并不一定意味着程序卡死。

如果终端正在持续输出:

Downloading...Installing...Checking...

通常应该先耐心等待。


十九、翻译完成后会发生什么?

正常情况下,PDF2zh 会生成翻译后的 PDF。

最终可以形成类似:

原论文.pdf

以及:

原论文_zh.pdf

具体文件命名和保存位置取决于当前版本及翻译配置。

然后可以继续在 Zotero 中阅读。

整个流程就完成了:

英文论文   ↓Zotero   ↓PDF2zh   ↓AI 翻译   ↓中文/双语 PDF   ↓Zotero 阅读

二十、双语布局怎么选择?

PDF2zh 新版提供了不同的双语布局能力。

例如:

LR

可以理解为左右布局。

也可以使用:

TB

进行上下交替布局。

具体效果取决于原 PDF 的结构以及当前翻译引擎处理结果。


二十一、为什么有些论文翻译后排版很好,有些却比较奇怪?

因为 PDF 本身并不是纯文本。

例如一篇论文可能是:

┌──────────┬──────────┐│          │          ││  Text    │  Text    ││          │          ││  Figure  │  Table   ││          │          │└──────────┴──────────┘

PDF2zh 需要先识别:

文字图片表格公式栏位阅读顺序

然后重新进行排版。

所以:

PDF 翻译质量 = 文本翻译质量 + PDF 解析质量 + 排版质量。

其中任何一个环节出现问题,都可能影响最终效果。


二十二、扫描版 PDF 为什么经常翻译失败?

普通论文 PDF 通常有文本层。

例如:

PDF ↓直接读取文字

但是扫描 PDF 本质上可能是:

PDF ↓图片 ↓OCR ↓文字 ↓翻译

因此扫描版论文需要额外考虑 OCR。

如果 PDF 本身:

  • 分辨率低
  • 页面倾斜
  • 字体模糊
  • 表格复杂
  • 双栏结构严重

OCR 和后续排版难度都会增加。

所以:

第一次测试 PDF2zh 时,建议使用标准文本型 PDF。


二十三、常见问题一:uv 命令找不到

如果执行:

uv --version

出现类似:

'uv' 不是内部或外部命令

通常意味着:

uv 没有正确安装

或者:

PATH 环境变量没有刷新

可以尝试:

  1. 关闭当前 CMD;
  2. 重新打开 CMD;
  3. 再执行:
uv --version

如果仍然失败,再检查 uv 的安装路径是否加入 PATH。


二十四、常见问题二:python 找不到

如果:

python --version

无法执行。

首先检查:

where python

如果没有结果,则说明当前命令行无法找到 Python。

Windows 用户尤其需要注意:

不要同时安装大量不同来源的 Python,并让 PATH 变得非常混乱。

建议保留一个清晰的 Python 3.12 环境供 PDF2zh 使用。


二十五、常见问题三:Zotero 显示 Server 无法连接

例如:

Connection refused

或者:

Cannot connect to server

优先检查:

第一项

Server 是否正在运行?

python server.py

第二项

端口是否正确?

默认:

8890

第三项

Zotero 插件中的地址是否正确?

默认:

http://127.0.0.1:8890

第四项

是否修改过 Server 端口?

例如启动:

python server.py --port 9999

那么 Zotero 中就必须改成:

http://127.0.0.1:9999

官方配置文档也明确说明,修改 Server 端口后,需要同步修改插件中的 Server URL。


二十六、常见问题四:API 返回 401

如果出现:

401 Unauthorized

重点检查:

API Key

包括:

  • 是否填写正确;
  • 是否复制了多余空格;
  • Key 是否已经失效;
  • 当前模型服务是否允许该 Key 使用。

二十七、常见问题五:API 返回 404

如果出现:

404 Not Found

需要重点检查:

Base URL

例如:

https://example.com/v1

与:

https://example.com

并不一定等价。

不同服务的 API 路径可能不同。

所以不要看到一个服务“兼容 OpenAI API”,就直接复制另一个服务的 Endpoint。


二十八、常见问题六:HTTP 429

如果出现:

HTTP 429

通常意味着服务端对请求进行了限制。

可能涉及:

请求过于频繁API额度不足账户余额不足并发限制

这类问题通常不属于 Zotero 本身故障。

应该首先检查 AI 服务商后台的:

余额额度Rate LimitQPS

等信息。


二十九、常见问题七:翻译过程中报 Python 环境错误

如果终端出现:

ModuleNotFoundError

或者:

PackageNotFoundError

不要立即执行:

pip install xxx

因为新版 PDF2zh 的翻译环境由 Server 进行管理。

更推荐:

python update_packages.py

让项目按照当前环境进行依赖更新。

项目文档也明确建议使用 update_packages.py 管理翻译环境,而不是手动强行组合 BabelDOC、PyMuPDF 等版本。


三十、Windows 用户特别容易遇到的路径问题

Windows 路径经常类似:

D:\ProgramData\ZoteroExt\zotero-pdf2zh\server

如果使用 CMD:

cd /d D:\ProgramData\ZoteroExt\zotero-pdf2zh\server

注意:

/d

可以让 CMD 同时切换盘符。

如果从:

C:

切换到:

D:

这一点尤其重要。


三十一、不要把 Server 放在过于复杂的路径

例如:

D:\ZoteroExt\zotero-pdf2zh\server

通常比较清晰。

不太建议:

D:\我的软件\论文工具\2026新版\测试环境\PDF翻译最终版\server

复杂路径容易增加:

  • 空格
  • 中文字符
  • 特殊符号
  • 路径过长

带来的兼容性问题。

尤其是在 Python、虚拟环境和第三方工具组合使用时,保持路径简单通常更容易排查问题。


三十二、不要随便把 Server 暴露到公网

默认配置:

127.0.0.1

意味着:

只允许本机访问。

如果使用:

python server.py --host 0.0.0.0

则意味着允许其他网络设备访问这个服务。

项目文档也明确提醒,只有在明确需要远程访问并理解防火墙及网络配置时才建议这么做。

对于普通用户:

保持 127.0.0.1 即可。


三十三、如何判断整个环境已经配置成功?

可以按照下面的检查表逐项确认:

□ Python 可以运行□ uv 可以运行□ server.zip 已正确解压□ requirements.txt 安装完成□ python server.py 可以启动□ 8890 端口正常监听□ Zotero PDF2zh 插件安装成功□ Zotero 能连接 127.0.0.1:8890□ AI API Key 配置正确□ 模型名称正确□ 测试论文可以提交□ 翻译任务能够完成□ 双语 PDF 可以正常打开

如果以上项目全部通过,那么基本就完成了 Windows 下的 PDF2zh 环境搭建。


三十四、最终的完整架构

现在回过头来看整个系统:

                    ┌───────────────┐                    │    Zotero     │                    │  文献管理/阅读 │                    └───────┬───────┘                            │                            ▼                    ┌───────────────┐                    │ PDF2zh 插件    │                    └───────┬───────┘                            │                            ▼                    ┌───────────────┐                    │ PDF2zh Server │                    │ 127.0.0.1:8890│                    └───────┬───────┘                            │                            ▼                    ┌───────────────┐                    │ Python 翻译环境 │                    │  uv / conda    │                    └───────┬───────┘                            │                            ▼                    ┌───────────────┐                    │  AI 翻译 API   │                    └───────┬───────┘                            │             ┌──────────────┼──────────────┐             ▼              ▼              ▼         DeepSeek         OpenAI      其他兼容服务             │              │              │             └──────────────┼──────────────┘                            ▼                    ┌───────────────┐                    │   双语 PDF     │                    └───────┬───────┘                            ▼                    ┌───────────────┐                    │ Zotero 阅读/标注│                    └───────────────┘

这套架构的最大特点是:

Zotero 负责管理文献,PDF2zh 负责 PDF 翻译,AI 模型负责语言理解。

三者各司其职。


三十五、写在最后

对于科研人员来说,PDF2zh 最值得关注的并不是“能不能把英文翻译成中文”。

真正有价值的是:

它可以把 AI 翻译能力融入 Zotero 的论文阅读工作流。

传统方式可能是:

下载论文 ↓打开浏览器 ↓上传 PDF ↓等待翻译 ↓下载译文 ↓重新导入

而 Zotero + PDF2zh 可以逐渐形成:

论文 ↓Zotero ↓PDF2zh ↓AI 翻译 ↓双语阅读 ↓标注 ↓笔记 ↓知识库

这也是为什么对于长期阅读英文论文的人来说,“翻译”只是整个工作流中的一个环节。

真正高效的科研阅读体系应该是:

文献管理 + AI 翻译 + PDF 阅读 + 标注 + 笔记 + 知识沉淀。

如果你已经在使用 Zotero,那么不妨从一篇 5~10 页的英文论文开始测试。

先把:

Python → uv → PDF2zh Server → Zotero 插件 → AI API → 双语 PDF

这一整条链路跑通,再逐步扩展到批量翻译、AI 文献分析和结构化笔记。

这样建立起来的,才是一套真正属于自己的 AI + Zotero 科研文献阅读工作流


参考资料

PDF2zh 项目官方 GitHub:

Zotero PDF2zh 官方项目

安装文档:

PDF2zh Windows / 安装指南

配置文档:

PDF2zh 配置说明


扫描二维码关注我们

本公众号发布的内容除特别标明外版权归原作者所有。若涉及版权问题,请联系我们。所有信息及评论区内容仅供参考,请读者自行判断信息真伪,不构成任何投资建议。据此产生的任何损失,本公众号概不负责,亦不负任何法律责任。

相关学习资料