Zotero PDF2zh 是 Zotero 的开源插件,用于 PDF 文献的翻译与格式处理。
若不使用 Docker 部署,需先创建 Python 虚拟环境(可选),安装依赖:
# 创建虚拟环境(可选)
conda create -n zotero-pdf2zh python=3.12
conda activate zotero-pdf2zh
# 安装依赖包
python -m pip install pdf2zh==1.9.6 flask pypdf
python -m pip install pdfminer.six==20250416 # 固定版本
插件开发依赖的 pdf2zh
版本为 v1.9.6
,需确保版本一致。
1、命令行启动
# 下载服务脚本
wget https://github.com/guaguastandup/zotero-pdf2zh/raw/refs/heads/main/server.py
# 启动服务(端口号可自定义,如 8888)
python server.py 8888
注意:若修改端口号,需在 Zotero 插件配置中同步调整。
2、Docker 启动
# 构建镜像(需提前获取 Dockerfile)
docker build --build-arg ZOTERO_PDF2ZH_FROM_IMAGE=byaidu/pdf2zh:1.9.6 --build-arg ZOTERO_PDF2ZH_SERVER_FILE_DOWNLOAD_URL=https://github.com/guaguastandup/zotero-pdf2zh/blob/main/server.py -t zotero-pdf2zh .
# 运行容器
docker run zotero-pdf2zh
3、Docker Compose 启动
# 构建并启动(需提前获取 docker-compose.yaml)
docker compose build
docker compose up -d
配置文件创建
在 server.py
同级目录新建 config.json
,用于设置翻译引擎、字体路径等参数。示例配置如下:
{
"USE_MODELSCOPE": "0",
"PDF2ZH_LANG_FROM": "English",
"PDF2ZH_LANG_TO": "Simplified Chinese",
"NOTO_FONT_PATH": "./LXGWWenKai-Regular.ttf", // 推荐霞鹜文楷或微信读书AI楷
"translators": [
{
"name": "deepseek",
"envs": {
"DEEPSEEK_API_KEY": "sk-xxxxxxx",
"DEEPSEEK_MODEL": "deepseek-chat"
}
},
{
"name": "zhipu",
"envs": {
"ZHIPU_API_KEY": "xxxxxx",
"ZHIPU_MODEL": "glm-4-flash"
}
}
]
}
字体配置:若使用 Docker 部署,需挂载字体文件,如 - ./zotero-pdf2zh/LXGWWenKai-Regular.ttf:/app/LXGWWenKai-Regular.ttf
。
翻译引擎:支持火山引擎 deepseek-v3
、智谱 AI glm-4-flash
等,默认 bing
/google
无需配置 API。
Zotero 插件参数设置
进入 Zotero 设置 → 高级 → PDF2zh,配置以下参数:
选项 | 默认值 | 说明 |
---|---|---|
Python Server IP | http://localhost:8888 | 需与服务端端口一致 |
源语言 | en | 待翻译语言(如英文) |
目标语言 | zh | 翻译目标语言(如中文) |
翻译服务 | bing | 需与 config.json 中 translators 名称对应 |
线程数 | 4 | 并行翻译线程数,可根据硬件性能调整 |
输出路径 | ./translated/ | 建议使用绝对路径,存储翻译后的 PDF |
配置文件路径 | ./config.json | 指向已创建的 config.json 文件 |
注意:Zotero 配置会覆盖服务端配置,若需使用服务端配置,插件对应字段留空即可。
翻译 PDF
右键选中 Zotero 中的 PDF 条目或附件,选择 PDF2zh:翻译 PDF。根据插件设置中的“默认生成文件”选项,可生成:
mono:纯中文翻译文件(适配手机阅读可勾选“生成单栏 mono 文件”)
dual:中英文对照文件(支持双栏切割或单栏直接对照)
裁剪与格式处理
1、双栏转单栏:选择 PDF2zh:裁剪 PDF,生成后缀含 cut
的单栏文件(如 origin-cut.pdf
),适合移动端阅读。
2、双语对照排版:
双栏对照:对已生成的 dual
文件右键选择 PDF2zh:双语对照(双栏),将双栏内容左右拆分拼接。
单栏对照:选择 PDF2zh:双语对照(单栏),直接生成左右对照的单栏文件(后缀含 single-compare
)。
性能优化
跳过引用页:在 Zotero 配置中设置“跳过最后几页”,减少 LLM Token 消耗。
多线程翻译:将线程数调至 20 以上(需硬件支持),提升批量翻译速度。
夜间优惠时段:使用 deepseek-v3
引擎时,可在 00:30 后利用 50% 流量优惠。
翻译效果
原文段落:
The memory demand of virtual machines (VMs) is increasing, while traditional DRAM-only memory systems have limited capacity and high power consumption.
翻译结果:
虚拟机(VM)的内存需求不断增加,而传统的纯DRAM内存系统容量有限且功耗较高。
格式示例
单栏 mono 文件:适合手机纵向阅读,内容纯中文无原文对照。
双栏 dual 文件:左栏英文右栏中文,保留原文结构便于对照查阅。
单栏对照文件:英文与中文段落左右并排,适合宽屏设备或文献精读。