出于个人需求做了个 PDF 去文字水印的工具,分享一波

2017-08-22 10:04:12 +08:00
 hwding

allitebooks下载过很多 PDF 去学校的打印店打印胶装,感觉不比买的书差,而且能看到很多国外新出版的书。 但是这个网站会随机给书中的几页打水印,下载的多了以后去水印是个麻烦事。 所以就做了一个命令行工具,不依赖任何 PDF 编辑器就能快速去文字水印,提供水印的关键字即可,为了防止误伤关键字越具体越好。

项目地址pdf-unstamper,从昨天下午到夜里一点多才做完,第一版实现了一些基本功能,支持批量处理、文件夹内递归和是否直接读写源文件等选项。

求支持,由于个人能力有限,希望能够一起改进,核心用了 Apache 的 pdfbox。

4670 次点击
所在节点    分享创造
23 条回复
mineqiqi
2017-08-22 10:54:52 +08:00
赞,粗略看了下代码,原理是文章重写了一边去实现的吗?
hwding
2017-08-22 11:01:53 +08:00
@mineqiqi 是遍历每一页中的 Component,相当于检查每一个文本框的内容,发现含有关键字就把它重写为空,因为水印是后打上去的所以一般是一个独立的文本框,去掉的时候不会影响原来的内容。
natforum
2017-08-22 11:38:03 +08:00
图灵社区的图书去不了
hwding
2017-08-22 11:45:56 +08:00
@natforum 你是说“图灵社区会员 hwding(m@amastigote.com) 专享 尊重版权”这个是吗?
natforum
2017-08-22 11:54:24 +08:00
@hwding
hwding
2017-08-22 12:25:24 +08:00
@natforum 我解决一下,一开始还没发现。
chinvo
2017-08-22 12:27:03 +08:00
@hwding #4 不建议在这里讨论盗版事宜
SENSIR
2017-08-22 13:42:58 +08:00
楼主有研究过 koreader 吗?这个不只支持 Kindle 的阅读软件在阅读扫描型 pdf 文档时,可以将文字旁灰色的色块去除,增加黑白对比度。
这个只是单纯根据取色时的灰度,结合预设的阀值来判断的吗?还是会基于全局有一定的“学习”功能?
hwding
2017-08-22 14:04:59 +08:00
@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。
blanu
2017-08-22 15:06:22 +08:00
我想写一个能去图片水印的(就是每一页相同位置有一副图片),女票工作上需要。。不过不太会 java,看了下 pdfBox,感觉很强大,请问能很容易实现吗?
hwding
2017-08-22 15:21:58 +08:00
@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
hwding
2017-08-22 15:24:05 +08:00
@blanu 不过你要去图片水印的话命令行的形式可能就不太够用了,得做 UI 了。
msg7086
2017-08-23 03:57:29 +08:00
让我想起了以前上课的时候老师跟我们说买书太贵了让我们去下 PDF 看的时光。
hwding
2017-08-23 06:56:26 +08:00
@msg7086 感觉现在书某种程度上依旧有点贵。
msg7086
2017-08-23 07:47:39 +08:00
@hwding 我觉得只会越来越贵。专业书动不动就 200 刀一本还不含税,学生们就只能 PDF 走起了。
hwding
2017-08-23 12:28:49 +08:00
@msg7086 等以后工作了就上美亚买正版回报社会😏。
hwding
2017-08-25 13:36:40 +08:00
@natforum 新版本已发布 支持中文关键字(理论上支持任何语言)
natforum
2017-08-25 16:25:34 +08:00
@hwding 赞一个
hackpro
2017-10-15 16:16:34 +08:00
非常感谢 V 友,www.it-ebooks.info 测试通过
有两个问题:
1. www.it-ebooks.info 会包含在一个文本框中,文字水印去除后,这个文本框还在,有什么办法可以去掉吗?
2. 可否在脚本 scripts/install 中允许用户定义安装目录 类似 --prefix=...
hwding
2017-10-15 17:15:22 +08:00
@hackpro 第 2 点我会过几天加在安装脚本里,感谢提议!关于第一点暂时还不考虑,因为可能会引起其他的问题,把这个功能做到 terminal 里就是想让它简单些。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/384755

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX