转自https://zhuanlan.zhihu.com/p/373021855

废话

pdf页级跳转在许多种电子笔记的方法论中,都是一个痛点功能,在我们在想把书上看到的资料型/工具型内容纳入笔记系统时,页级的跳转链接可以把我们从“抄书”中解放出来;在渐进式笔记中,页级的跳转链接可以直接作为我们的最底层级的笔记,为上层笔记提供最完整的background。
然而,pdf作为和网页并驾齐驱的两大最重要的电子文本信息来源,“信息化”程度却相当低,实在是太像印刷品了: 不能根据屏幕尺寸自适应排版,链接跳转功能也相当落后。
pdf页级跳转这个痛点功能存在一些解决方案,但我认为目前没有被很好地解决:

  • 只有少数笔记软件(例如RemNote,MargiNote3)原生提供了这个功能。一方面这限制了我们的选择(很不幸,这几家原生提供的笔记软件我都没相中),另一方面,他们的解决方案基于笔记软件自己提供了pdf阅读器,而我认为各个软件各司其职是最好的,笔记软件做pdf阅读器肯定不如专门的笔记软件,pdf阅读最好是能调用外部的pdf阅读器。最后,使用外部的pdf阅读器保证了无论是链接再笔记中的pdf文件还是笔记外的普通pdf文件都有统一的体验。
  • 原生的解决以外,也有“野生”的解决方案:有朋友做了基于quicker+everything的pdf跳转动作,原理是通过pdf和everything的“搜索”来打开特定的pdf文件以及跳转pdf文件中的特定段落。但quicker只能适用与windows平台,而且需要额外对pdf进行重命名和管理。我对他们的巧思感到敬佩,但是对于我个人来说,感觉有那么一丝繁琐和错置,还是不太满意。(已经在使用quicker的朋友推荐了解一下这套方法)

幸运的是,若是曲线救国利用文献管理软件zotero就有办法可以实现我个人理想中的pdf页级跳转。zotero本来就是我工具链中的一员,所以对我来说没有增加多余的软件,这个解决方案对我来说几乎是完美了。
前几天在discord的logseq 频道里聊到pdf页级跳转这个话题,看到有朋友也想试试我的方法,所以今天就抽点时间写个草草的教程。下面的正文示例中,笔记软件以logseq为例,因为我现在用的是logseq。logseq是由
@秦天生
领导开发的本地化开源笔记软件,我从2021年1月开始使用,软件本身也非常优秀,而且我很欣赏开发者的一些理念。不过,现在软件在前期开发中,所以使用存在一些不稳定。其他笔记软件原理相同,应该可以复用。
致谢:这个方法最初是受 思源笔记与 zotero 连用,实现 PDF 页级跳转 - ayue 的回帖 - 链滴 (ld246.com) 这篇文章启发。

- 正文

1.前置条件:

  • Win或Mac皆可。
  • 下载安装 Zotero并安装插件Zotilo(功能本身不需要插件,Zotilo只是方便操作)。
  • 需要跳转的pdf文件需放入Zotero的库中

    2.设置Zotilo(只需做一次)

    2.1 进入zotilo首选项
    Zotero外部跳转到pdf指定页 - 图1

2.2 勾选 ”复制选中条目链接” 为 “Zotero上下文菜单”
Zotero外部跳转到pdf指定页 - 图2

3.链接

3.1 复制条目
Zotero外部跳转到pdf指定页 - 图3
复制的条目链接长这样:

  1. zotero://select/library/items/VFG6E3GN

最重要的就是 “VFG6E3GN” 这一串代码。通过这串代码zotero可以找到我们这个条目及条目下的pdf,而且这串代码不随条目在zotero中调整分类的改变而改变,不会被扰乱。
如果我们把这个条目链接粘贴在logseq中,点击跳转会直接打开zotero并选中这个条目

3.2 修改条目为打开pdf特定页
为了实现我们跳转到pdf特定页的目标,我们只需对这个条目稍作修改:
zotero://open-pdf/library/items/VFG6E3GN?page=67
(把“select”替换为“open-pdf”,然后在末尾加上 “?page=你想跳转的页码数”
把这个链接粘在logseq中,点击链接就会先打开zotero,再使用默认pdf阅读器打开该pdf阅读器打开你设定的页码。
注意,这对你的默认pdf阅读器有一定要求,我使用的是福昕pdf阅读器,据说Adobe家的和pdf expert这两款阅读器也能成功,但部分阅读器可能无法实现跳转。
当然,在笔记软件中你可以用相应的语法来修饰这个链接,例如markdown的语法:

  1. [DMAIC process](zotero://open-pdf/library/items/VFG6E3GN?page=67)

我的 logseq 用的是org-mode的模式,所以我的链接是这样的:
编辑状态:
Zotero外部跳转到pdf指定页 - 图4
正常状态:
Zotero外部跳转到pdf指定页 - 图5

其他

如果你能满足只使用edge或者chrome浏览器来看pdf的话,那有更简单的方法,因为这两款浏览器打开pdf直接支持指定页码,因此,只需用:
“pdf文件绝对地址#page=你想跳转的页码数” 即可。
例如:file:///C:/Users/yapiy/Desktop/火光摇曳.pdf#page=20