网络上有寄书扫描的服务,不过扫描后,制作PDF书签的费用,比扫书还贵。有书签阅读会更方便,研究了一下自己快速制作高质量书签的方法,在这里分享一下。
1. 用到的工具
- FreePic2Pdf
- PdgCntEditor
- 一个支持正则表达式替换的文本编辑器,如Visual Studio Code
2. 从豆瓣提取现成目录
自己手动把条目一个个做出来,时间成本太高了。这里是通过编辑现成的目录,导入自己的PDF。找现成目录,一个途径是豆瓣,另一个方法是找别人做好的PDF。如果两个途径都找不到,还是花钱给扫书的人做吧。
本文通过豆瓣提供的目录制作书签,至于如何从别的PDF提取,再导入,会利用豆瓣做,那你就会了从别的PDF导入了。
豆瓣图书详情页,有非常完美的目录,可以直接复制下来,通过文本编辑器的正则表达式替换格式化。
- 首先,格式化为PdgCntEditor所支持的页码表示法
即页码,跟名称,以一个制表符分隔,豆瓣提供的是以“空格”分隔,通过以下正则匹配(不包括单引号,注意空格,下同):
1 |
' (\d+)$' |
替换为:
1 |
'\t$1' |
- 多级目录缩进
使用制表符缩进,二级缩进一位,三级两位,以此类推
-
- 二级目录,“1.1 ”这种格式开头的替换规则:
1 |
'^(\d+\.\d+) '替换为'\t$1 ' |
-
- 三级目录,“1.1.1”这种格式开头的替换规则:
1 |
'^(\d+\.\d+\.\d+) '替换为'\t\t$1 ' |
更多级别、或者其他格式的,以此类推,修改下匹配规则和替换内容即可。如果有些无法正则解决的,一般来说正则替换后,剩余还没完成修改的条目应该很少了,可以手动修正。
- 编辑第一页前的页码
用PDF阅读器打开,查看正文第一页,是PDF所有页中的第几页,然后正文前的书签的页码,就是其在PDF中的页码-正文第一页在PDF中的页码,例如正文第1页,是PDF的第22页,那封面的页码就是-21。
- 格式大致如下
3. 编辑接口文件
运行FreePic2Pdf,点击右下角的“更改PDF”,然后切换到“从PDF取书签”,选择要编辑目录的PDF文件,然后点击开始,正常情况下,会显示“导出完成”:
点击“2、存放接口文件的文件夹”右侧的“编辑书签”按钮(下图红圈处):
把格式化后的目录文本,粘贴进去,然后点击左上角的保存按钮(下图红圈处):
点击“编辑接口文件”按钮:
更改其中BasePage的值为书籍正文第一页在PDF中的页数:
退出其余打开了此PDF的程序,然后切换到“往PDF挂书签”标签,点击“开始”:
完成后,PDF即可得到一个内容完整、结构完好的书签: