# 基于 Keyboard Maestro 的半自动 PDF 目录做法

> 本文开放前 70% 正文，剩余内容会员可见。

原文：https://utgd.net/article/20862

阅读没有目录的 PDF，如同不带地图就去陌生之境涉险。

可惜，在线书城割据的当下，提供书籍下载的厂商本就凤毛麟角，进一步提供 PDF、还给你做好目录的，我所知只有图灵社区，而在2023年之后，这颗仅存的硕果也不复了。

好读书之士，几乎只剩自制目录一途（姑且不论花钱找人代劳），此时却会发现并不方便。Windows 上的工具不少，但我用得不多，不评论；macOS 这边则在闹饥荒，而且还两极分化，要不基础如 PDFOutline，要么就过于追求自动化，反而很容易失效。

或许在完全人工与全自动化之间，尚有第三条路径——半自动化。我并不奢求某款神奇软件能从扫描版 PDF 中自动提取文字并创建目录，只求能够保证：在已有文字版目录时，能据此在 PDF 中添加目录。

一旦将获取文字版目录（包括页码）和在 PDF 中创建目录两件事分开，那么略显笨拙却极其可靠的半自动化方案，也就浮出水面。

Keyboard Maestro 动作下载

## 第一步：获取文字版目录

全手动添加目录的工具尚有几款，比如本文选择的 PDFOutline，以及诸位想必非常熟悉的 PDF Expert（但这玩意儿需订阅，我没买，故不评价）。手动操作，本质上就是创建创建一个条目（entries），再填上对应的页码，非常机械，也的确很累人，而且和扣扣子一样，一旦漏了或重复一次，后续的目录页码可能就会全部乱套。本文所取的方案，即先获取条目和对应页码，编成表格，最后再用 Keyboard Maestro 模拟键鼠操作、创建目录。

第一步当然是先获得目录信息，即条目和页码。最幸运的情况下，有些文字版 PDF 本身就可以拷贝目录；不过多数书籍可能还是要上网查询，除了最容易想到的豆瓣，也可以从京东、当当、大書城（megBook）等电商网站上看看有无目录，另外，出版商也可能提供目录及页码。

实在运气不好，还剩下手动提取文字这最后一条路。所幸如今 OCR 工具普及——最不济，还能用微信——三百来页的书，若有四五页目录，大概也只需要几分钟就能复制下来，常接触外文书籍的，还可以参考《Keyboard Maestro x OCR，在多语言环境中轻松抓取文字》。

手工制作目录固然要一些力气，但比起难如抽丝的阅读，这点时间实在 微不足道，个人使用大概已经足够。说到底，这篇文章也不是给终日制作盗版书之徒写的。

## 第二步：整理成 Numbers 表格

获取条目和页码后，就可以制作一份表格，将数据收拾整齐，以便在后续步骤中 Keyboard Maestro 可以准确获得所需数据。上一步获得的数据有两列，但实际制作时还需要获得 PDF 中每一条目对应的页码，而由于封面、序言和目录的存在，原始页码往往和 PDF 中的真实页码对不上，需要加上前述页面所占据的页数。

这便是选用 Excel 或 Numbers 等表格工具的原因：引入公式，快速算出 PDF 文件中各条目的位置。公式非常简单，无非是 =原始页码\+差额页数，例如我当前要处理的书在正文第一页之前有整整 26 页七七八八的东西，那就可以加上 26；只需输入一次公式，然后选中该单元格，就能在格子下方看到一个小圆点（名为填充柄），拉住它，往下拉，就可以一路算出所有条目的页码。

## 第三步：用 Keyboard Maestro 和 PDF 编辑器创建目录

到这一步，还剩最繁重的一环：将目录数据搬到 PDF 中。手动操作不便前已述及，不过，若低头稍稍观察手动搬运目录的动作，很容易发现极有规律，无非是先从表格文件中拷贝数据，再跑到 PDF 编辑器（本文以 PDFOutline 为例）中粘贴并另起一行、等待下一步，紧接着又切回表格，继续拷贝数据、一再重复。

机械操作的苦闷之处无需多言，但其中也隐藏了（半）自动化的契机：将动作打包成组，再用 Keyboard Maestro 模拟，并循环数次。以搬运页码——此操作所需工序较多，展示效果更明显——为例，下图便是 Keyboard Maestro 模拟的过程，设好循环次数，确保 Numbers 和 PDFOutline 已经打开，再通过顶部菜单栏启动 Macro，然后稍作休息，静待 Keyboard Maestro 交出成品即可。

惟需注意，既然是模拟键鼠，则除了稍花一些时间，更大的弊端在于其间不能使用电脑，否则会和 Keyboard Maestro 的操作冲突。不过，相比手工劳动，半自动化已经进步太多。而且，Keyboard Maestro 和 PDFOutline 只是临时结盟，如有一天后者不再维护以致失效，则大不了换另一款 PDF 页码编辑工具，无需被特定软件绑死。

以下 Macro 仅为示例，请观察您的实际操作，如工具或操作与我不同，则需对 Macro 作相应修改：Keyboard Maestro Macro 下载。

## 拓展用法：顺便生成可点击的纯文本目录

若只是单纯为 PDF 创建目录，

---

[前往标准阅读页](https://utgd.net/article/20862?audience=web)
