用正则+PdgCntEditor给扫描电子书添加目录

最近看一些扫描的考研电子书,经常需要翻看不同的章节,但是很多电子书没有目录,看的非常难受。所以就从网上找了一些生成电子书目录的方法。

一、使用的软件和方法

方法是对图书的目录页先进行ocr识别(具体可以用wps,或者adobe的软件等等),然后放到pdgcnteditor这个软件中,使用一些方法把它转换成相应的格式。熟练正则查找和替换的操作起来就非常方便了。对应的格式也很直观,首先是删除全部的tab符号,然后第一级目录顶格,而后每一级目录都在前面添加一个tab符,最后页码的数字前面加一个tab符即可。

最终效果

二、使用演示

1.这是第一种书,目录页的排版是竖向一栏

(1)先把目录的文字搞出来。

这是wps ocr的结果

 

 上面是粘贴到vscode后的结果,可以看到,使用ocr识别,可以把页面中的所有文字都识别出来,但是排列顺序会出现问题,而且有些没有必要识别的文字也会添加进去。但是复制的时候,又不方便一个一个选取需要的文字,这样又会让操作变得麻烦。所以使用ocr直接识别的结果就能使用的情况是很少的。

 这是用pandaocr识别的结果,可以看见识别结果还是很不错的。

 这是abbyy的识别结果。

 这是wps的编辑图片,然后识别本页的结果。这次的效果还行。在上面的这个图里,要想选中所有目录文字,可以先把最大的那个红框选中删除,然后拖动选择目标的文字框即可。

(2)

上一步其实就是用各种方法把目录的图片识别成文字,而且只要目录信息和页数是对的就可以了。如果能从出版社,电商平台,图书馆联盟等等其他地方直接找到图书的目录信息,那更方便,需要修改的地方更少。

接下来的这一步就是使用正则把这些目录信息修改成对应的格式。

首先是正则表达式的语法规则,还有正则替换和对应的规则。

 可以看一下我写的这篇文章,正则表达式规则——写正则式_正则式和正则表达式_zsq_csh1的博客-CSDN博客一、读:1.字符分类:(1)特殊字符:即单个出现时,先遵循特殊含义特殊字符说明$匹配一行的结尾。要匹配 $ 字符本身,请使用\$^匹配一行的开头。要匹配 ^ 字符本身,请使用\^()标记子表达式的开始和结束位置。要匹配这些字符,请使用\(和\)[]用于确定中括号表达式的开始和结束位置https://blog.csdn.net/zsq_csh1/article/details/120449745?spm=1001.2014.3001.5501也可以看pdgcnteditor软件附带的使用说明,里面更详细地介绍了正则表达式的语法。

下面是一些常见的应用。注意,正则表达式会让所有符合规则的地方都被处理,而有些实际上并不是希望处理的,所以还需要手动调整。

1)去掉所有的换行符,左右括号,还有tab符,

 

2)在所有的页码后面添加换行符

解释:下面的替换一栏里,$&表示上面匹配到的每一个匹配项的原字符串

&1,&2,......,&9,表示上面的模式串匹配到的每一个字符串中第i个被括号括起来的部分匹配到的部分

3)把长串的……还有中间的杂字符全部替换成一个tab符号,这个长串的……可能是中文的省略号(shift+6),也可能是中文的·号(tab上面的),也可能是英文的.号

 

 4)在第一章,第一节,第一部分,等等类似结构之前/之后添加空格/tab控制缩进

 

 (3)在pdgcnteditor中给pdf添加目录

打开pdgcnteditor

 拖入pdf文件,粘贴已格式化过的目录文字,格式要求就三点,目录分级用tab分开,页码之前用tab分开,然后其余地方没有多于的tab符号  

 选中全文,点这个正负号增减页码对应的页数

最后ctrl+s保存,打开pdf检查。

 

 然后再用wps简单修改一下目录中有错误的部分,ctrl+s保存即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值