前言
通过Krasjet/pdf.tocgen实现为PDF创建目录
下载依赖
1
| pip3 install -U pdf.tocgen
|
举例
1 2 3 4
| # 一级标题1在第1页 ## 二级标题1在第2页 # 一级标题2在第3页 ## 二级标题2在第4页
|
匹配标题层级并生成配置
内容为<string>
的<level_number>
级标题在<file_name>.pdf
文件的第<page_number>
页
1
| pdfxmeta -p <page_number> -a <level_number> <file_name>.pdf "<string>"
|
- 如果只匹配到一组配置,那就将这一组配置输出为文件
- 如果匹配到多组配置,那就说明匹配的关键词重复出现,应当仅保留一个
- 从1级标题开始,依次匹配所有层级的标题,最后都输出到同一个文件
1 2
| pdfxmeta -p 1 -a 1 <file_name>.pdf "一级标题1在第1页" >> recipe.toml pdfxmeta -p 2 -a 2 <file_name>.pdf "二级标题1在第2页" >> recipe.toml
|
- 生成的
recipe.toml
文件即为标题层级匹配配置文件
生成toc文件
可以在每次匹配之后都可以进行一次检测
如果某一次匹配存在多组配置,就一定要依次检测一下哪个配置为正确的配置
1
| pdftocgen <file_name>.pdf < recipe.toml
|
1
| pdftocgen <file_name>.pdf < recipe.toml > toc.txt
|
1 2 3 4
| "一级标题1" 1 "二级标题1" 2 "一级标题2" 3 "二级标题2" 4
|
将toc文件与原pdf文件合并为新pdf文件
-t toc.txt
:指定toc文件
-o <file_name_new>.pdf
:指定合并后的新的pdf文件路径
<file_name_old>.pdf
:指定合并前的旧的pdf文件路径
1
| pdftocio -t toc.txt -o <file_name_new>.pdf <file_name_old>.pdf
|
完成
参考文献
少数派——Bryan