作者说:
写这个软件的初衷是学校老师天天发扫描王弄出来的PDF试卷打印,浪费墨水。只好自己写个软件去掉。至于老师为什么不用BD扫描,那我就不知道了…
默认操作:
直接拖拽Pdf文件到软件图标上,可以自动删除每页最小宽高的图片、自动去除绘图水印(曲线水印)、自动去除扫描王的文本水印。
命令行使用:
进入命令行窗口,按 Win-r
输入 cmd
,确定。
如果pdfcommander在D盘,就输入 D:
回车,然后输入 cd PDFCommander
文件所在的目录,回车。
把pdf文件拷贝到 PDFCommander 文件所在的目录中,然后输入: PDFCommander -f 你的文件.pdf -q -c
更多命令看压缩包中的说明。
需要说明的是,很多文本水印并不是明文编码,还有很多水印是绘图指令绘制出来的,所以要想更好得去除水印,只能使用命令行参数。
查看Pdf文件内部结构,用命令行 PDFCommander -f 你的文件.pdf -v
分析水印,用命令行: PDFCommander -f 你的文件.pdf -v
直接拖拽只能处理一小部分种类的水印。各种繁杂的水印需要使用命令行参数分析Contents,然后使用 -t
、-b
、-r
三个参数配合才能去掉或者隐藏水印。
PDF Commander 命令行参数界面:
命令行举例:
PDFCommander -f 你的文件.pdf -v ,仅分析文档
PDFCommander -f 你的文件.pdf -p ,输出Contents、Tj、Annots到文本文件,用于水印分析。
PDFCommander -f 你的文件.pdf -x ,删除每页的最小图片(水印)
PDFCommander -f 你的文件.pdf -a ,删除注释(超链接、水印)
PDFCommander -f 你的文件.pdf -q ,删除带有绘图指令的qQ操作符
PDFCommander -f 你的文件.pdf -c ,删除带有绘图指令的BDC/BMC操作符
PDFCommander -f 你的文件.pdf -q -c ,删除带有绘图指令水印。(如果直接拖拽pdf生成的文件打开报错,用这个命令行试试)。
PDFCommander -f 你的文件.pdf -t 指定文本 ,删除每页的指定文本(如果文本中间有空格,需要加引号)。有些PDF文本可能是Unicode编码后的字符串。
PDFCommander -f 你的文件.pdf -x -t 指定文本 ,删除每页的最小图片和关键词文本
PDFCommander -f 你的文件.pdf -t “/Fm0 Do” ,删除Fm0绘制动作(有些水印写在XForm对象中。因为绘制动作有空格,所以需要加引号)
PDFCommander -f 你的文件.pdf -t “/FXX2 Do” ,删除FXX2绘制动作(有些水印写在xobject中,直接删除绘制动作)
PDFCommander -f 你的文件.pdf -t “^,^6^7^8^’^<” ,文本是Pdf二进制自有编码,明文不可见。编码中的00会被替换为^。(输出中会看到夹杂^的Tj字符串)
pdfcommander -f 你的文件.pdf -t 002C0036003700380027003C ,文本是Pdf二进制自有编码。可以用-v或者-p生成Tj文件看到类似这样的十六制Tj字符串。
PDFCommander.exe -f 扫描全能王.pdf -t C9A8C3E8C8ABC4DCCDF520B4B4BDA8 -r C8ABC4DCCDF520B4B4BDA8C9A8C3E8 , 把“扫描全能王创建”替换成“全能王创建扫描”。文本编码是GB2312。
PDFCommander.exe -f 你的文件.pdf -t “0 0 0 0.149 scn” -r “0 0 0 0 scn” , 替换水印颜色(某些绘图水印无法区分,可以换成底色,这样就看不见了)
PDFCommander.exe -f 你的文件.pdf -b 002c0036003700380027003c -r 0x0003 , 按字节删除或者替换水印,使用00 03替换00 2c 00 36 00 37 00 38 00 27 00 3c。这里的00 03和00 2c之类的都代表某个字符,由Pdf文件内部定义。很多PDF中的文本水印都是采用编码储存,按照十六进制字节处理会更灵活。
PDFCommander.exe -f pf.pdf -a -b B8FCB6E0BAC3CAE9C7EBB5E3BBF7207777772E757573382E6F7267 -r 0x20 , 按字节删除或者替换水印。用空格(0x20)替换十六进制数据(B8 FC B6 E0 …)。
PDFCommander -f 你的文件.pdf -w 300 -h 150 ,删除每页的图片宽高和为450的图片
PDFCommander -f 你的文件.pdf -t 关键词文本 -w 300 -h 150 ,删除每页的关键词文本和图片宽高和为450的图片
PDFCommander -f 你的文件.pdf -p -t 关键词文本 -i -a -u ,删除每页的最小图片和关键词文本、删除Widget、删除注释、删除编辑权限
应用场景:
1、删除扫描全能王和夸克扫描生成的pdf中加入的logo和链接。
2、隐藏pdf文件中最小尺寸图片或指定尺寸的图片(图片水印)。
3、删除qQ操作符和BDC/BMC操作符中的绘图指令(绘图水印)。
4、删除或替换指定的关键词文本(文本水印)
5、删除注释(超链接,水印)。
6、删除编辑权限。
已知问题:如果PDF中的正文文本和水印都是用绘图指令绘制的,这种情况无法区分水印,自然也不能去除。
顺便说一下,本软件不提供UI界面,原因是写UI代码太长,浪费电费。
系统支持:
支持Windows7及以上操作系统。
.Net Framework 4.7.2。
https://dotnet.microsoft.com/zh-cn/download/dotnet-framework/net472
下载:
https://charltsing.lanzouv.com/iu2sK279yf9c
https://www.123pan.com/s/Y4kqVv-63Cbv.html?提取码:CZ8m
关于PDF水印的事,这东西有好多种,文字的,图片的,曲线绘制的等等各种路数。在去水印之前,先弄清楚是哪种水印。
推荐使用-v
或者-p
参数输出Contents内容和Tj内容进行分析(需要有点PDF解析能力)。也可以使用PDFPatcher分析文档结构(虽然有时候不太准)。
来源地址:老师发的pdf作业有水印,用这个就对了
转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:www.88531.cn资享网,谢谢!^^