很多从网上直接下载的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. java应用挂死故障排查

    现象: java开发的web应用无法访问 排查: 1.从resin/log/watchdog-manager.log的日志里可以看出来,jvm的内存满,无法创建新进程 java.lang.OutOfM ...

  2. mogilefsd同步速度调优

    #查看主从mogadm settings list #一点点调试mogadm settings listmogadm settings set internal_queue_limit 500moga ...

  3. BufferedInputStream&BufferedOutputStream

    使用字符缓冲区相关实现copy文件: public static void main(String[] args) { //创建文件对象指定要拷贝的文件路径(源文件),文件须存在,测试用例不做判断 F ...

  4. ubuntu 更换系统源和pip源

    1 . 备份 cd /etc/apt sudo cp sources-list sources-list.bak 2 . 编辑 这里用了阿里云的源 sudo vi sources-list 将文件内容 ...

  5. javascript原型理解一种

    http://www.jianshu.com/p/15ac7393bc1f 这个系列值得好好学习的.. // 声明构造函数 function Person(name, age) { this.name ...

  6. 使用Android Studio开发调用.NET Webservice 之初体验

    本人是.NET出身 但苦于领导要让研究Android 外壳然后准备套html5  ,当试验兵真坑啊 但也没办法 咱还得研究啊,索性 不辜负领导的期望(也研究好两三天了)总算弄明白了 app本地存储 和 ...

  7. (分享别人的一篇好文章,来自jackson0714)30分钟全面解析-SQL事务+隔离级别+阻塞+死锁()

    30分钟全面解析-SQL事务+隔离级别+阻塞+死锁 阅读目录 概述: 一.事务 二.锁 三.阻塞 四.隔离级别 五.死锁 以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQ ...

  8. laravel 安装碰到的问题:全局安装 Laravel Installer,然后用下面的指令创建新项目: laravel new blog报连接超时解决方案

    在执行laravel new project 的时候报错 cURL error 7: Failed to connect to cabinet.laravel.com port 80: Timed o ...

  9. csu1808

    csu1808 题意 n 个点间有 m 条地铁,每条地铁可能属于不同的线路,每条地铁有权值即通过时花费的时间,如果乘坐第 i 条地铁来到地铁站 s,再乘坐第 j 条地铁离开,需要花费额外的时间 \(| ...

  10. POJ2955 Brackets(区间DP)

    给一个括号序列,求有几个括号是匹配的. dp[i][j]表示序列[i,j]的匹配数 dp[i][j]=dp[i+1][j-1]+2(括号i和括号j匹配) dp[i][j]=max(dp[i][k]+d ...