前言

之前找了一些古董级别的电子书,本来想导到 MarginNote 看的,不过发现这些pdf没有目录书签,就很难受了。

想要跳转到某一章节就只能 划进度条 或者 无脑手指滑滑滑,而且还要先翻到目录页看下大概第几页,何况目录显示的页码和pdf的页码往往会相差个几页,还要 心算 一下🤦🏻‍♂️

动手

然后网上搜了一下,有个大佬已经写了现成的代码了👌

不过用的时候发现代码是 python2 的,这个改改就好了,好说。

不过效果还差了点,只能生成一级目录书签,小节与章节的书签层级是一样的。

图片

就像上图,左边所有标签都是一个层级的,右边则是有三个层级,通过点击 △ 可以收起或者展开子级目录书签。

不过去官网查了下文档,还是有相关函数支持的👇

图片

对源代码进行修改后,现在就很舒服了✌️

怎么用

1. 首先修改好bookmark.txt文件:用缩进来表示层级,每一个目录最后加上@页码

第一章 金属自由电子气体模型@3
    1.1 模型及基态性质@4
        1.1.1 单电子本征态和本征能量@5
        1.1.2 基态和基态的能量@7
    1.2 自由电子气体的热性质@9
        1.2.1 化学势随温度的变化@10
        1.2.1 电子比热@12

2. 修改info.conf

  • pdf_path: 原 pdf 文件路径
  • bookmark_file: 上一步书签信息的文件路径
  • page_offset: pdf页码和书页实际页码的偏差
[info]
pdf_path = 固体物理基础.pdf
bookmark_file_path = bookmark.txt
page_offset = 20

3. 运行之

python handle_pdf.py

 

具体代码已经上传GitHub仓库:https://github.com/Benature/pdf-helper/
如果还有疑问,欢迎在 GitHub 仓库提 issue 

 

1
1