新年好!

网上下载的某些 PDF 文档,经过层层转压,里面带上了一堆水印,很是影响阅读.

对于纯图片的文档(比如翻拍的纸质书)来说,来一个简单的脚本去除文本水印即可.(图片水印就不是一个脚本能解决的了)

PDF 是一种页面描述语言,而 PDF 文件由文件结构、文档对象,和一系列描述内容的操作符组成. 一段显示一串 8 的操作符序列如下:

1
2
3
4
5
BT
/F0 192 Tf
1 0 0 -1 0 137 Tm
(8888888888888) Tj
ET

BTET 是文本 block 开始和结束,Tf 操作选择字体 F0 字号 192pt,Tm 是位置矩阵,Tj 是字符内容. 更多操作符可参考 PDF Explained 及标准文档.

再看这个脚本就很简单了,遍历每个页面对象,获取内容操作符列表,去掉 Tj.

当然,还有待完善的地方,比如去掉整个文本 block, 根据文字删除等等.

水完了~


本文参考链接已标注