如何制作pdf书签
从网上下载的pdf书籍没有书签,读起来很不方便。下面介绍一个制作书签的方法。
1、下载好文字版带页码的目录、
第1章 整洁代码 19 1.1 要有代码 2 1.2 糟糕的代码 20 1.3 混乱的代价 21 1.3.1 华丽新设计 22 第2章 有意义的命名 33 2.1 介绍 33 2.2 名副其实 34修改成每个层级之间使用一个 “\t” , 文字到页码之间也需要一个“\t" 的这种规则。
可使用EditPlus编辑器中的正则替换功能,修改在如下规则。
使用到的正则表达式
^(\d{1,2}\.\d) ^(\t+\d{1,2}\.\d+\.\d+) \s(\d+)$ \t\1增加二级书签的缩进
增加二级书签的缩进
修改书签标题到页码的距离
然后文本就成下城这样了
2、下载软件FreePic2PDF
3、操作软件步骤
从原书中取书签
会在你选择目录生成如上两个文件,打开FreePic2Pdf_bkmk.txt,把内容替换成上面做好有层级的目录。
然后如下操作
这样书签就做好了。
嗯。来看看效果吧。
有些书的页码跟pdf的页面不一致,那么就需要程序给页码加上一个固定的数值来修改pdf页面。
/*** 处理pdf页码与目录不一致的问题。* 在原页码 加上正文之前的页数,* 注意编码,一般pdf取出目录是统一码,* 需要转换成utf-8编码再使用程序处理*/ $file = "ab.txt"; $outFile = "a.txt"; $numPage = 16; // 需要增加的页码 $aa = file($file); $c = []; foreach ($aa as $k => &$v) {$tmp = explode("\t", $v);if (isset($tmp[0])) {$source = trim(array_pop($tmp));if (is_numeric($source)) {$page = (int)$source + $numPage;$page = "\t".$page;array_push($tmp, $page);$v = str_replace("\t".$source, $page, $v);} else {$c[] = $v;}} else {print_r($v);exit("出错了.");} } //print_r($c); file_put_contents($outFile, $aa);总结
- 上一篇: mysql正则mybatis中用法_SQ
- 下一篇: 含泪推荐5款实用又小巧的PC软件