帖子

  • 471820

    在站内看到不少pdf2zh的zotero插件+DeepLX的使用教程,但对于pdf2zh的却少有提及。本人更习惯用非插件版,因此讲解一下初次使用配置和如何解决选用BabelDOC时出现的报错。

    - 在DeepLX - LINUX DO Connect获取请求地址

    图片

    - 通过docker安装pdf2zh。安装好后,Service选择DeepLX,将之前获取的请求地址填入DEEPLX_ENDPOINT,DEEPLX_ACCESS_TOKEN可以不填

    图片

    - 点击Open for More Experimental Options,可选用Use BabelDOC,使翻译后的文件有更好的排版。

    图片

    但是会出现报错,原因是容器里安装了 NumPy 2.3 或更高版本,而旧版 BabelDOC 仍在用 np.fromstring() 读取二进制图片。NumPy 2.3 已正式移除这种用法,要求改成 np.frombuffer()。截至目前pdf2zh Version: 1.9.11 BabelDOC Version: 0.2.33,作者尚未修复。

    修复方法

    先查看容器名称:```
    docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}"
    ``假设容器名称是 pdf2zh,执行:``
    docker exec -i -u 0 pdf2zh python - <<'PY'
    from pathlib import Path

    path = Path(
    "/usr/local/lib/python3.12/site-packages/"
    "babeldoc/docvision/doclayout.py"
    )

    text = path.read_text(encoding="utf-8")

    old = "np.fromstring(pix.samples, np.uint8)"
    new = "np.frombuffer(pix.samples, np.uint8)"

    if old in text:
    path.write_text(text.replace(old, new), encoding="utf-8")
    print("修复成功:np.fromstring 已替换为 np.frombuffer")
    elif new in text:
    print("代码已经修复,无需重复修改")
    else:
    print("未找到目标代码,请检查 BabelDOC 安装路径或版本")
    PY
    ``然后重启:``
    docker restart pdf2zh

    主楼
  • gy_rs

    佬,在zotero里可以用吗?有研究过吗?

    #1
  • 471820

    没,但你可以试试。你可以让AI找出插件路径,让它读日志来修复。如果是同一个问题,让它把我的命令改一改拿来用也可以

    #2
  • 一般路过

    好贴dd。刚好觉得免费的硅基流动翻译太雷霆了,想怎么接入站子里的翻译

    #3

发表回复

登录后回复