给pdf文件添加书签

pdf  2020年09月02日

本文主要参考pdf-bookmark的项目主页.

安装 #

pdf-bookmark是一个python包, 运行依赖于PDFtkGhostscript, 我们要先安装这两个外部程序再运行pdf-bookmark.

  1. 先更新apt库并安装两个外部程序.

    sudo apt update
    sudo apt install pdftk-java
    sudo apt install ghostscript
    

    运行以下命令来测试是否安装成功.

    pdftk --version
    gs --version
    
  2. 安装python3与pip3(如果已经安装则可以跳过这一步).

    sudo apt install python3
    sudo apt install python3-pip
    

    运行以下命令来测试是否安装成功.

    python3 --version
    pip3 --version
    
  3. 因为我们需要pdf-bookmark的脚本文件在PATH中, 所以在全局安装pdf-bookmark.

    sudo -H pip3 install pdf-bookmark
    

    运行以下命令来测试是否安装成功

    pdf-bookmark --version
    

书签格式 #

为了给pdf文件添加书签, 我们需要先自行整理书签的内容, 保存为后缀名为bmk的文件. 一个例子如下:

!!! collapse_level = 2

!!! num_style = Roman
!!! num_start = 3
Introduction....vii
Notation and Terminology....ix

!!! new_index = 9
!!! num_style = Arabic
Chapter 1: Rings and Ideals....1
  Rings and ring homomorphisms....1
  Ideals. Quotient rings....2
Chapter 2: Modules....17
  Modules and module homomorphisms....17
  Submodules and quotient modules....18
Chapter 10: Completions....100
  Topologies and completions....101
  Exercises....113
Chapter 11: Dimension Theory....116
  Hilbert functions....116
  Dimension theory of N oetherian local rings....119
  Exercises....125
Index....127

这是Atiyah写的Introduction to Commutative Algebra书的pdf版本书签的一部分. pdf文件中前言部分从iii到x, 共有8页, 从第9页开始为正文部分, 直到文件的最后.

bmk文件的主体为书签本身, 一行代表一个书签内容, 书签标题与页码由至少4个点”.“分割. 缩进代表了书签之间的嵌套, 默认的缩进字符为两个空格.

以三个感叹号”!!!“开始的行代表了行内命令, 每条命令都会修改某一个书签设置变量, 其效果直到另一个命令再次修改这个变量. 常用的行内命令为:

运行 #

在同一个目录下放置pdf文件input.pdf以及书签bmk文件bookmark.bmk, 运行命令

pdf-bookmark -p input.pdf -b bookmark.bmk -o new.pdf

即可得到带书签的输出文件new.pdf.