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

Zotero PDF2zh 配置与参数设置

配置文件创建

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.jsontranslators 名称对应
线程数 4 并行翻译线程数,可根据硬件性能调整
输出路径 ./translated/ 建议使用绝对路径,存储翻译后的 PDF
配置文件路径 ./config.json 指向已创建的 config.json 文件

注意:Zotero 配置会覆盖服务端配置,若需使用服务端配置,插件对应字段留空即可。

Zotero PDF2zh 功能和使用

翻译 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% 流量优惠。

Zotero PDF2zh 示例

翻译效果

原文段落:

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 文件:左栏英文右栏中文,保留原文结构便于对照查阅。

单栏对照文件:英文与中文段落左右并排,适合宽屏设备或文献精读。