一、下载软件

需要用到的软件叫FreePic2pdf, 下载之后打开页面如下所示:

此时需要点击右下角的“更改PDF”,弹出如下图所示的页面:

其中,“往PDF挂书签”是根据指定的文件往PDF目录中挂文件的,而“从PDF取书签”则是提取PDF文件中的目录。

二、制作步骤

首先找到一本没有目录的电子书,如下图所示:

接着如参照步骤一进行“从PDF取书签”的操作,这一步的主要目的是生成指定格式的文件。

选择该PDF电子书并做操作后,会在同目录下生成一个文件夹,如下图所示:

点进去之后可以看到下图所示的文件:

接着只需要在“Freepic2Pdf.bkmk.txt”中输入准备好的目录信息,并进行格式调整。

目录的格式要求为:

\t一级目录\t页码
\t\t二级目录\t页码 
\t\t\t三级目录\t页码
  ...

其中,“\t”代表一个Tab键。

同时调整“FreePic2Pdf.tif”中的BasePage参数即可。

如下图所示:

至于数值是多少,大家可以到第一章在PDF文件中所处的页数,而我这里是12。

接着切换到“往PDF挂书签”,并点击开始即可为PDF生成目录,生成效果如下图所示:

三、如何获取目录

目录的来源最方便的方法是从百度百科或者京东商城中进行复制。大多数情况下,都可以找到对应的目录。

比如在百度百科中搜索之后,跳转到目录页,如下图所示:

下面是京东的搜索结果:

但是,偶尔也会存在找不到的情况,这时候就需要找各种OCR识别软件了。由于我开的WPS的会员,因此直接用WPS自带的“提取文字”功能。当然,也可以使用百度翻译来进行文字识别。

不管是网上找的,还是通过OCR软件识别出来的目录信息,大多数时候会存在格式问题。因此需要进行格式上的调整。

四、调整目录格式

对于目录格式的调整来说,可以一个一个调整,但是这样的话工作量比较大,且容易出错。因此,需要利用一些软件通过正则表达式进行替换。

下面是我从网上扒到的一个目录:

这里我用到的软件叫EditPlus,至于别的软件是否可行,大家自行尝试即可。需要说明的是,使用正则表达式进行替换时需要勾上“使用正则表达式”的选项,如下图所示:

  1. 去除所有的空格行

这一步用到的正则表达式为:“^[\t \n]*”,替换为“”,如下图所示:

替换后结果如下所示:

  1. 对类似1.1.1这样的三级目录进行缩径处理

使用到的正则表达式为“^(\d{1,2}\.\d{1,2}\.\d{1,2})”, 替换的表达式为“\t\t\0”,如下图所示:

替换后结果如下图所示:

  1. 对类似1.1这样的二级目录进行缩径处理

这里使用的正则表达式为“^(\d{1,2}\.\d{1,2})”,替换的表达式为“\t\0”, 如下图所示:

替换后结果如下图所示:

  1. 处理页码

处理页码 用到的正则表达式为“[…\t  .]*(\d{1,3})[ ]*$”, 替换表达式为“\t\1”,如下图所示:

替换后结果如下图:

此时目录的调整就已经算完毕了。