Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

批处理去水印功能建议 #209

Open
lon91ong opened this issue May 25, 2024 · 7 comments
Open

批处理去水印功能建议 #209

lon91ong opened this issue May 25, 2024 · 7 comments
Labels
❤️ 好建议 改进 New feature or request

Comments

@lon91ong
Copy link

Enfocus Pitstop的操作逻辑太过复杂,软件体积也太大,不适合补丁丁的实现

可以参考一下这个PDF工具箱的操作逻辑:PDF去水印

批量去水印的功能需求应该是蛮大的

@wmjordan wmjordan added 改进 New feature or request ❤️ 好建议 labels May 26, 2024
@lforlgg
Copy link

lforlgg commented Jun 2, 2024

https://www.cnblogs.com/stronghorse/p/14572080.html
https://www.cnblogs.com/stronghorse/p/15789961.html
https://www.cnblogs.com/stronghorse/p/16545775.html
马先生这个思路才是釜底抽薪的终极办法,用正则直接处理pdf内部数据流。

`用正则表达式对PDF文件内容进行替换

喜欢这个功能的人喜欢到骨子里,甚至有人相信这个功能无所不能;讨厌这个功能的人也能讨厌到骨子里,甚至认为这个功能根本就是个坑。而我自己为了使用这个功能,《PDF Reference》也不知道翻了多少遍。

当年和国外某PDF软件开发者讨论这个功能的时候,他直接说我开发这个功能就是在打开潘多拉的盒子,所以我相信无论是过去、现在还是将来,都不会有哪家严肃的软件公司会开发出竞品。`

他们经常用这样的正则表达式去水印,异常简单:
/Xi\d+? Do
页面流P
(为空)

@Charltsing
Copy link

Charltsing commented Oct 2, 2024

原理是一样的,但是靠正则不能处理各种水印。只有采用通配符处理原始字节码才行。

另外,PDFCommander表面上是一个万能水印工具,其实本质上是一个PDF命令行编辑工具。只是对外宣传说水印方便菜鸟理解而已,毕竟你不能让菜鸟用命令行去编辑PDF。

命令行的好处是可以批量处理同一批次的PDF文档。

@Charltsing
Copy link

捕获

最理想的是做文档分析,并输出。类似上面的图。
这是用PdfPig输出的文本信息,但是它不能输出原始字节码。

@wmjordan
Copy link
Owner

wmjordan commented Oct 2, 2024

不见得用正则表达式匹配处理就是必由之路。
直接分析编辑内容流,对比较多用户而言还是难度颇高。
对于文本水印而言,有时候不是那么容易可以定位其内容并写出一个表达式。

@Charltsing
Copy link

Charltsing commented Oct 2, 2024

测试了PdfPig,可以处理常规的PDF。修改之后的PdfPig可以输出16进制数据,可以支持查看部分文本水印。
捕获

竖排和旋转的pdf页面处理不支持。

@Charltsing
Copy link

Charltsing commented Oct 10, 2024

修改itextsharp的PDFString,增加HexValue,在解析token的时候,给Value和HexValue都赋值。

这样输出Tj就可以支持字符串和16进制码了

例如你发的那个test2.pdf,输出是这样的:
捕获

@Charltsing
Copy link

PDFCommander 更新到 v1.20 基本可以应付99.9的PDF水印。最新版的删除指令段功能可以处理Contents中全部的曲线水印。
PDFToys的正则功能虽然也能删指令段,但是对普通人来说实在难以入手。PDFCommander 的 -e 参数对普通人更友好。

这个issus可以关闭了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
❤️ 好建议 改进 New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants