很多从网上直接下载的PDF电子书目录都不全,因此搜索资料又加以改化,总结了一个自己手动快速创建目录的办法,分享给大家。

  1. 百度搜索PDF电子书的目录或者直接从PDF拷贝到Notepad++等编辑器,使用正则表达式进行全局替换,将目录进行格式化,替换规则如下:

    • 第二级向右移动一个Tab位:^(([A-Z]{1,3}|[a-z]{1,3}|[0-9]{1,3})(\.[0-9]{1,3})) 替换为 \t\1,\1表示原来的字符
    • 第三级向右移动一个Tab位:(\t([A-Z]{1,3}|[a-z]{1,3}|[0-9]{1,3})(\.[0-9]{1,3}\.[0-9{1,3}])) 替换为 \t\1
    • 章节与标题之间使用空格分隔,标题与页码之间使用Tab分割,可以统一替换为空格,然后将标题和页码之间的空格替换为Tab,使用:\s(?=\d+$) 替换为 \t
    • 正文之前的内容如序、前言、目录可以使用负数表示,也可以从0开始,但正文目录也需要随着改变
    • 原格式与效果图对比如下:
              
  1. 下载 FreePic2Pdf 工具进行PDF文件的目录抽取与添加:
    1. 首先进行PDF文件的书签抽取,即抽取PDF书签接口,选择“从PDF取书签”选项,选中PDF文件,开始生成书签,会生成接口目录,包含两个文件:
      • FreePic2Pdf_bkmk.txt,目录文件,将我们格式化后的内容复制替换掉原来的
      • FreePic2Pdf.itf,配置信息,一般修改 BasePage 参数,即我们格式化后的目录第一页对应PDF的那一页。另外能够配置打开PDF时是否打开书签,是否展开所有书签等
    2. 修改完目录及配置后切换到”往PDF挂书签“选项,最好选择点击书签后页面缩放为“适合宽度”,选择PDF文件及生成的接口文目录,开始即可
                    
                    
                    
 
 

PDF快速创建目录的更多相关文章

  1. Itextpdf + Adobe Acrobat DC填充模板生成pdf快速入门

    Itextpdf + Adobe Acrobat DC填充模板生成pdf快速入门 生成pdf有很多种方法,如通过freemarker,或 使用itextpdf.本文将使用itextpdf生成pdf 1 ...

  2. 在.NET中使用iTextSharp创建/读取PDF报告: Part I [翻译]

    原文地址:Create/Read Advance PDF Report using iTextSharp in C# .NET: Part I    By Debopam Pal, 27 Nov 20 ...

  3. saltstack手册(含官方pdf)

    官方手册 https://docs.saltstack.com/en/pdf/Salt-2019.2.1.pdf 快速入门 SALTSTACK是什么? Salt是一种和以往不同的基础设施管理方法,它是 ...

  4. httprunner_安装及利用脚手架工具快速创建项目

    一.安装httprunner 笔者自己安装的版本为2.5.7 安装命令: pip  install httprunner==2.5.7 二.快速创建目录 hrun --startproject dem ...

  5. Xcode使用小结1

    工程项目 -> General->launch Screen file这个如果没有设置,则app的可见范围为3.5inch(APP的可见范围是由启动界面决定的) PUSH方法是在navig ...

  6. ACM赛前准备——模板(排版篇)

    ACM赛前准备--模板(排版篇) 更新 前言 效果演示 封面 目录页 模板页(不分栏) 模板页(分栏) 结果文件 快速使用 准备工作 安装TexLive (可选)安装minted包 创建模板 文件结构 ...

  7. MinIO 搭建

    MinIO 搭建 MinIO 是一个基于 Apache License v2.0 开源协议的对象存储服务.它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片.视频.日志文 ...

  8. 在线visio软件,在线流程图软件,在线绘图、在线画图

    1. https://www.bullmind.com/ 推荐bullmind的在线visio软件,一种低成本的Visio替代品.bullmind是基于 网络的绘图工具,具有出色图表功能.您可以使用b ...

  9. linux可以这样玩 之 杂乱无章的随笔(不定期更新)

    文章目录 快速重命名 vim的进化 vim高亮当前行 vim列编辑 vim块编辑 vim行编辑 vim 中替换内容 vim保留当前已经编辑的内容,切换到其他用户继续编辑 修改服务的进程限制 CentO ...

随机推荐

  1. PHP 时间获取本周 本月 本季度用法

    <?php        $week_begin = mktime(0, 0, 0,date("m"),date("d")-date("w&qu ...

  2. 考勤的lua脚本

    ngx.header.content_type = "text/plain;charset=utf-8" local cjson = require "cjson&quo ...

  3. ASP.NET增加微信公众号功能

    最近微信的公众号使用的挺多的.我们也弄了个,现在有个需求就是在用户点击菜单的时候,获取用户的OPENID,然后作为后续使用. 首先记录下步骤, 安装必要的dll引用 install-package s ...

  4. 牛客网 暑期ACM多校训练营(第二场)D.money-贪心 or 动态规划

    D.money 贪心,直接贴官方的题解吧. 题目大意 你要按照顺序依次经过n个商店,每到达一个商店你可以购买一件商品,也可以出售你手中的商品. 同一时刻你手上最多拿一件商品.在第i个商店购买和出售的代 ...

  5. POJ 2524 Ubiquitous Religions (并查集)

    Description 当今世界有很多不同的宗教,很难通晓他们.你有兴趣找出在你的大学里有多少种不同的宗教信仰.你知道在你的大学里有n个学生(0 < n <= 50000).你无法询问每个 ...

  6. ELK之收集日志到mysql数据库

    写入数据库的目的是持久化保存重要数据,比如状态码.客户端浏览器版本等,用于后期按月做数据统计等. 环境准备 linux-elk1:10.0.0.22,Kibana ES Logstash Nginx ...

  7. Linux的软连接和硬连接

    1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接] 硬连接指通过索引 ...

  8. jsp笔记1(基本原理与语法)

    web.xml文件配置管理的范围: 1.配置jsp 2.配置和管理Servlet 3.配置和管理Listener 4.配置和管理Filter 5.配置标签库 6.配置jsp属性 7.配置和管理JAAS ...

  9. unity3d Billboard

    CameraFacingBillboard   CameraFacingBillboard From Unify Community Wiki   Jump to: navigation, searc ...

  10. 六. 异常处理5.多重catch语句的使用

    某些情况,由单个代码段可能引起多个异常.处理这种情况,你可以定义两个或更多的catch子句,每个子句捕获一种类型的异常.当异常被引发时,每一个catch子句被依次检查,第一个匹配异常类型的子句执行.当 ...