从allitebooks下载过很多 PDF 去学校的打印店打印胶装,感觉不比买的书差,而且能看到很多国外新出版的书。 但是这个网站会随机给书中的几页打水印,下载的多了以后去水印是个麻烦事。 所以就做了一个命令行工具,不依赖任何 PDF 编辑器就能快速去文字水印,提供水印的关键字即可,为了防止误伤关键字越具体越好。
项目地址pdf-unstamper,从昨天下午到夜里一点多才做完,第一版实现了一些基本功能,支持批量处理、文件夹内递归和是否直接读写源文件等选项。
求支持,由于个人能力有限,希望能够一起改进,核心用了 Apache 的 pdfbox。
1
mineqiqi 2017-08-22 10:54:52 +08:00
赞,粗略看了下代码,原理是文章重写了一边去实现的吗?
|
2
hwding OP @mineqiqi 是遍历每一页中的 Component,相当于检查每一个文本框的内容,发现含有关键字就把它重写为空,因为水印是后打上去的所以一般是一个独立的文本框,去掉的时候不会影响原来的内容。
|
3
natforum 2017-08-22 11:38:03 +08:00
图灵社区的图书去不了
|
4
hwding OP @natforum 你是说“图灵社区会员 hwding([email protected]) 专享 尊重版权”这个是吗?
|
8
SENSIR 2017-08-22 13:42:58 +08:00 via Android
楼主有研究过 koreader 吗?这个不只支持 Kindle 的阅读软件在阅读扫描型 pdf 文档时,可以将文字旁灰色的色块去除,增加黑白对比度。
这个只是单纯根据取色时的灰度,结合预设的阀值来判断的吗?还是会基于全局有一定的“学习”功能? |
9
hwding OP @SENSIR
很遗憾,由于出发点很简单,单纯去除文字水印 www.allitebooks.com ,所以做的是读取节点元素的文本再将其余参数给的关键字比对来判断是否需要去除。 你所说的这些功能看起来适用性很强,用起来也很方便,我想用 Apache PDFBox 的话这些功能后期可能会实现。 @chinvo 感谢提醒,我会注意,其实我用的那本书就是我在图灵自己买的,并没有拿出来传播。 @natforum 我发现这是一个编码问题,试了很多编码没有办法转成中文,后续会跟进这个问题。 不过刚才看了下 ituring 的 PDF 的特征,新加了-t(--cut-tail)参数,能够成功的去除 ituring 的所有水印。 ➜ java -jar pdf-unstamper.jar -i Ruby.pdf -d -t 不过对于其他特征不明显的 PDF 不建议使用这个参数。 刚发布了一版,也更新了下 README。 |
10
blanu 2017-08-22 15:06:22 +08:00 via iPhone
我想写一个能去图片水印的(就是每一页相同位置有一副图片),女票工作上需要。。不过不太会 java,看了下 pdfBox,感觉很强大,请问能很容易实现吗?
|
11
hwding OP @blanu PDF box 好像可以操作图片的。
它的 example 页还没完善好,你看看这个 exemple 的源码: https://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/util/PrintImageLocations.java?view=markup |
13
msg7086 2017-08-23 03:57:29 +08:00
让我想起了以前上课的时候老师跟我们说买书太贵了让我们去下 PDF 看的时光。
|
19
hackpro 2017-10-15 16:16:34 +08:00
非常感谢 V 友,www.it-ebooks.info 测试通过
有两个问题: 1. www.it-ebooks.info 会包含在一个文本框中,文字水印去除后,这个文本框还在,有什么办法可以去掉吗? 2. 可否在脚本 scripts/install 中允许用户定义安装目录 类似 --prefix=... |
20
hwding OP @hackpro 第 2 点我会过几天加在安装脚本里,感谢提议!关于第一点暂时还不考虑,因为可能会引起其他的问题,把这个功能做到 terminal 里就是想让它简单些。
|