PDF 阅读器选择
使用思源笔记、Obsidian、logseq 等笔记软件的用户都喜欢使用它们进行 PDF 阅读,因为它们能够将批注生成批注链接到笔记里,点击该链接就能够跳转到 PDF 文件原文位置、对信息进行回溯。
但我个人还是更倾向于使用专门的 PDF 阅读器进行阅读和批注,主要有下面几个原因:
-
专门的 PDF 阅读器更加流畅、显示效果更好,且批注方式更加多样。
- 笔记软件基本上都使用 pdf.js 来实现相关功能,用是可以用,但不够好用。
-
批注内容写入 PDF 文件,便于管理。
- 笔记软件的批注信息是保存在 PDF 文件之外的,使用 PDF 阅读器是看不到这些批注的,需要使用笔记软件打开才能看到。
-
部分笔记软件只能批注其附件文件夹内的 PDF 文件(思源,说的就是你!),会导致 PDF 文件重复、占用同步空间等问题。
因为上述原因,我一直在使用 PDF 阅读器进行批注,使用过下列软件:
zotero | bookxnote | PDF-XChange Editor | |
---|---|---|---|
外观展示 | |||
生成批注链接 | ★★★★ 需要使用 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 代码或者软件内置的宏进行获取。
现在要解决两个问题:
- 获取 page、comment id 和 PDF 文件路径等信息,用这些信息生成一个可以点击的链接
- 点击链接后调用命令行来将参数传给 PDFXEdit.exe
上述问题都能用这个 quicker 动作解决:生成注释外链 - by 浅沧 - 动作信息 - Quicker (getquicker.net)
动作使用方法:
- 在 PDF-XChange Editor 中选中文本
- 运行 quicker 动作,会生成一个可以启动 quicker 的 markdown 链接并发送到剪贴板。格式如下:
[锚文本](quicker:runaction:quicker动作ID?page=页码;comment=ID;path=PDF文件路径
- 将剪贴板中的 markdown 链接粘贴到思源笔记等软件中
- 点击该链接,会启动 quicker 并将
page=页码;comment=ID;path=PDF文件路径
等参数传送给 quicker 动作 - quicker 动作根据
page=页码;comment=ID;path=PDF文件路径
等参数生成/A page=页码;comment=批注ID "PDF文件路径"
格式的命令行参数,动作调用命令行工具将参数传给 PDFXEdit.exe - PDFXEdit.exe 打开 PDF 文件并跳转到指定注释。
注意事项
- 由于链接中包含了文件路径信息,如果 PDF 文件在多台电脑上同步的话,要保持路径一致,或者使用虚拟驱动器使路径一致,可使用这个 quicker 动作来添加虚拟驱动器:虚拟驱动器管理 - by 浅沧 - 动作信息 - Quicker (getquicker.net)。
- 由于电脑重启会导致虚拟驱动器失效,请将该动作设置为开机自启动,用法详见:利用虚拟驱动器与第三方同步软件管理思源笔记附件 - 知乎 (zhihu.com)
- 动作使用了从外部链接启动 quicker 的功能,这是 quicker 付费功能。目前还没想到其他方式,有的话可以告诉我。
- 由于启动参数包含了 PDF 页码,请勿增加或删除 PDF 文件页面。
- 需要的 PDF-XChange Editor 中开启如下设置:文件 → 首选项 → 注释 → 将所选文本复制到高亮、删除线和下划线注释弹窗
小尾巴
目前的方案有个比较烦人的地方:PDF-XChange Editor 中会有弹窗一闪而逝,这是为了复制信息的不得已之举,有更好的解决方案麻烦告诉我。
弹窗的由来:
PDFXEdit.exe 需要指定页码、注释 ID 和文件路径才能打开指定文件、跳转到指定注释。页码和文件路径可以通过内置宏的方式获得,但是注释 ID 目前只找到了 javascript API 的方式。js API 不支持操作剪贴板,无法将相关信息进行输出,js 的执行结果也只能输出到软件内置的 js 控制台,无法输出到外部。所以现在使用了 response 弹窗来输出信息。
有更好的解决方案吗?
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于