使用 PDF-XChange Editor 进行 PDF 批注并生成批注链接

PDF 阅读器选择

使用思源笔记、Obsidian、logseq 等笔记软件的用户都喜欢使用它们进行 PDF 阅读,因为它们能够将批注生成批注链接到笔记里,点击该链接就能够跳转到 PDF 文件原文位置、对信息进行回溯。

但我个人还是更倾向于使用专门的 PDF 阅读器进行阅读和批注,主要有下面几个原因:

  • 专门的 PDF 阅读器更加流畅、显示效果更好,且批注方式更加多样。

    • 笔记软件基本上都使用 pdf.js 来实现相关功能,用是可以用,但不够好用。
  • 批注内容写入 PDF 文件,便于管理。

    • 笔记软件的批注信息是保存在 PDF 文件之外的,使用 PDF 阅读器是看不到这些批注的,需要使用笔记软件打开才能看到。
  • 部分笔记软件只能批注其附件文件夹内的 PDF 文件(思源,说的就是你!),会导致 PDF 文件重复、占用同步空间等问题。

因为上述原因,我一直在使用 PDF 阅读器进行批注,使用过下列软件:

zotero bookxnote PDF-XChange Editor
外观展示 image image image
生成批注链接 ★★★★
需要使用 quicker 等辅助工具生成 URI 链接
★★★★★
软件本身支持 URI 链接,很方便
★★★
需要使用 quicker 等辅助工具生成命令行参数,点击链接后调用命令行工具打开阅读器,比较麻烦。
保存批注到 PDF 文件 ★★
需要使用收费插件,哒咩 X
X
没找到相关功能
★★★★★
打开任意位置的 PDF 文件 ★★★★
将文件拖入到 zotero 内,完成链接就能打开了
★★★★★ ★★★★★
当做系统默认阅读器 X
并不能作为系统默认阅读器来使用,必须从 zotero 库内打开文件
★★★★★ ★★★★★
UI 美观度 ★★★★
比较素雅
★★
丑拒
★★★★
有点花里胡哨,但是自定义度高
编辑 PDF 文件 X X ★★★★★
编辑功能顶呱呱,可与 adobe acrobat 掰腕子
OCR
可以安装 OCR 插件,使用 Tesseract 引擎
X
需要调用外部 API,约等于没有

ABBYY FineReader 引擎识别,速度和精度还不错
PDF 文件管理 ★★★★★
学生党、研究人员的利器
★★★
聊胜于无吧
X
只是个阅读器和编辑器

鉴于个人的使用习惯以及需要编辑 PDF 文件的需求,最后选择了 PDF-XChange Editor 作为我的 PDF 阅读器。

PDF-XChange Editor 注释链接的获取与打开

下面介绍下如何在 PDF-XChange Editor 中生成注释(批注)链接。

主要是通过给 PDFXEdit.exe 传入相关参数来实现的,PDFXEdit.exe 支持如下的命令行参数:

/A page=页码;comment=批注ID "PDF文件路径"

/A:表示打开文件。

page:要打开的页码。

comment:每个批注有自己的 ID,需要通过注释的属性进行查看,或者通过 JS 代码获取。

PDF 文件路径:要打开的 PDF 文件,可以通过 JS 代码或者软件内置的宏进行获取。

现在要解决两个问题:

  1. 获取 page、comment id 和 PDF 文件路径等信息,用这些信息生成一个可以点击的链接
  2. 点击链接后调用命令行来将参数传给 PDFXEdit.exe

上述问题都能用这个 quicker 动作解决:生成注释外链 - by 浅沧 - 动作信息 - Quicker (getquicker.net)

动作使用方法:

  1. 在 PDF-XChange Editor 中选中文本
  2. 运行 quicker 动作,会生成一个可以启动 quicker 的 markdown 链接并发送到剪贴板。格式如下:
    [锚文本](quicker:runaction:quicker动作ID?page=页码;comment=ID;path=PDF文件路径
  3. 将剪贴板中的 markdown 链接粘贴到思源笔记等软件中
  4. 点击该链接,会启动 quicker 并将 page=页码;comment=ID;path=PDF文件路径 等参数传送给 quicker 动作
  5. quicker 动作根据 page=页码;comment=ID;path=PDF文件路径 等参数生成 /A page=页码;comment=批注ID "PDF文件路径" 格式的命令行参数,动作调用命令行工具将参数传给 PDFXEdit.exe
  6. PDFXEdit.exe 打开 PDF 文件并跳转到指定注释。

外链

注意事项

  1. 由于链接中包含了文件路径信息,如果 PDF 文件在多台电脑上同步的话,要保持路径一致,或者使用虚拟驱动器使路径一致,可使用这个 quicker 动作来添加虚拟驱动器:虚拟驱动器管理 - by 浅沧 - 动作信息 - Quicker (getquicker.net)
  2. 由于电脑重启会导致虚拟驱动器失效,请将该动作设置为开机自启动,用法详见:利用虚拟驱动器与第三方同步软件管理思源笔记附件 - 知乎 (zhihu.com)
  3. 动作使用了从外部链接启动 quicker 的功能,这是 quicker 付费功能。目前还没想到其他方式,有的话可以告诉我。
  4. 由于启动参数包含了 PDF 页码,请勿增加或删除 PDF 文件页面。
  5. 需要的 PDF-XChange Editor 中开启如下设置:文件 → 首选项 → 注释 → 将所选文本复制到高亮、删除线和下划线注释弹窗

image

小尾巴

目前的方案有个比较烦人的地方:PDF-XChange Editor 中会有弹窗一闪而逝,这是为了复制信息的不得已之举,有更好的解决方案麻烦告诉我。

弹窗的由来:

PDFXEdit.exe 需要指定页码、注释 ID 和文件路径才能打开指定文件、跳转到指定注释。页码和文件路径可以通过内置宏的方式获得,但是注释 ID 目前只找到了 javascript API 的方式。js API 不支持操作剪贴板,无法将相关信息进行输出,js 的执行结果也只能输出到软件内置的 js 控制台,无法输出到外部。所以现在使用了 response 弹窗来输出信息。

有更好的解决方案吗?

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    19750 引用 • 75544 回帖 • 1 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    25 引用 • 83 回帖
  • PDF
    27 引用 • 39 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 哦好的,不过我认为 zotero 用来管理 pdf 也挺好的,你用高级 pdf 编辑器,既然要用批注链接,也要找一个文件夹把 pdf 丢进去,不可能就放在微信的文件夹里吧,用 zotero 就无脑直接丢进去好了,需要再进行分类,一个文件还能多分类。不过看个人选择了,就建议下。我现在就是 Acrobat+zotero,使用 zotero 最大的问题在我这就只是不支持加 pdf 书签,我还得用 Acrobat 加书签,不过也能顶顶。

    Acrobat 也能 OCR、还能校正倾斜的页面。中文 OCR 不建议用 Tesseact,太慢了,识别率还不高,ABBYY OCR 也不错,但是我发现会有损 pdf 的清晰度(可能我不会用),我现在比较推荐用 Umi-OCR,OCR 贼快,GitHub 开源,调用 paddle OCR。

    复制批注带链接的设置在下面。

    Clip20240514195637.png

    如果要设置复制批注带链接的文本模板,参考官方文档 note_templates [Zotero Documentation]

    2 操作
    Achuan-2 在 2024-05-14 20:14:27 更新了该回帖
    Achuan-2 在 2024-05-14 20:10:50 更新了该回帖
  • 其他回帖
  • qiancang

    我需要经常打开企业微信同事发来的 PDF 文件,zotero 没法作为系统默认阅读器双击打开文件,之前搜了一下也没找到方法,放弃了。

    我需要的是阅读器,并不需要文献管理器。

    1 回复
  • 建议用 zotero 阅读书籍文献 pdf 吧,用高级 pdf 编辑器来编辑 pdf 吧,这并不冲突吧

    zotero 复制标注自带链接跳转(粘贴到思源需要粘贴为纯文本才有链接,或者 zotero 对粘贴到富文本设置进行修改,就可以默认粘贴有链接)

    zotero 保存批注到 pdf 也是可以的,我记得是用打印功能吧

    zotero 现在还能导入 epub,还能剪藏网页快照

    zotero 支持 webdav 同步

    或者 bookxnote pro 也不错,就是没有 zotero 的文献信息抓取(两年前用的,不知道现在有不)

    1 回复