如何批量删除PDF文档中的”www.it-ebooks.info“
经常在http://www.it-ebooks.info/下载电子教程,但是下载的教程每页都会打上www.it-ebooks.info的标签。之前也没太注意,最近每次看到这些标签都有点小烦躁,想着是不是可以批量去除,首先考虑是在Adobe Acrobat XI Pro下去除水印,但是很遗憾参考很多网上的教程都没有处理掉。萌生了写个脚本批量处理的想法,在谷歌搜到一个外国人写的相关分析和教程,我觉得挺好的,也就依葫芦画瓢演示一遍,算是留个笔记吧。
大致思路是,用hex编辑器打开PDF文件,找到带有www.it-ebooks.info的文本,然后全部替换成为空即可。
因为我的ubuntu14.04虚拟机不带Bless Hex编辑器,首先需要安装。命令如下:
apt-get install bless
在ubuntu14.04中使用bless打开需要处理的PDF文档,如下图所示:
接下来,我们来找这里面的www.it-ebooks.com字符串。在两个地方存在www.it-ebooks.com字符串,一个是在link中,一个是在text中。我们来看link中的www.it-ebooks.com。如下图所示:
图中选中的部分即是link中的www.it-ebooks.com。link中的结构如下:
<< /Type /Annot /Subtype /Link /Rect [ 210 18.5 294 6.5 ] /Border [ 0 0 0 ] /A << /Type /Action /S /URI /URI (http://www.it-ebooks.info/) >> >>
查看了一下《Developing with PDF》这本书,一对双角括号代表一个Dictionary对象,其中包含属性和对象的值。上面得到的就是link中的www.it-ebooks.com。接下来,我们来找text中的www.it-ebooks.com部分。如下图所示:
text中的结构如下:
BT 1 0 0 1 0 0 Tm (www.it-ebooks.info)Tj ET
我们只要把以上两部分的内容替换为空字符就可以删除整个PDF文档中的www.it-ebooks.com水印了。
接下来,我们编写一个python脚本来自动化进行这个过程:源码放在GitHub上面。
参考文献:http://www.rawcoders.com/Thread-How-To-Remove-it-ebooks-info-watermark-from-pdfs