Elaineliu 发表于 2024-7-13 20:02

【PDFCommander v1.20】永久免费的PDF万能水印删除工具,去水印、换颜色、删文本..

本帖最后由 Elaineliu 于 2024-11-1 14:57 编辑

PDF万能水印删除工具,可以去除99.9%的PDF水印。例如:XObject水印(含图片水印)、文本水印、绘图水印/曲线水印、注释水印、工件水印、剪切路径水印等等
本软件是永久免费,无有效期限,无广告,无弹窗,无任何不良信息。
起初是因为用扫描王、夸克之类的app搞出来的pdf都带着logo,所以写了这个软件进行处理。发展到目前的最新版已经可以处理绝大部分pdf水印了。当然,如果进一步学习的话,你也可以用这个软件来随意修改PDF中的文本、颜色、位置、旋转、缩放等等的各种内容参数。

应用场景:
1、删除扫描全能王和夸克扫描生成的pdf中加入的logo和链接。
2、去除XObject水印(含图片水印)、文本水印、绘图水印/曲线水印、注释水印、工件水印、剪切路径水印等等。
3、更改PDF文档结构,可用于去水印、换颜色、换文本、换位置、删权限、去签章等等。

功能:
1、-o参数,分析PDF文档的水印格式。输出Detail文件是PDF原始文件结构信息。Contents文件是PDF文件的内容流,用于查找需要替换的指令(位置、颜色、文本等指令)、Text文件提供抽取的Contents部分常用指令,用于快速定位水印的位置、颜色、文本字节码等信息,方便精确处理水印。Annots文件用于查看注释水印。可配合-p参数自定义分析页码。Operators.txt文件用于计算-e参数需要的长度。
2、-p参数,自定义处理的页码(仅正序,从1开始)。
3、-x参数,删除水印图片绘制指令。默认删除Pdf文件每个页面中的最小尺寸图片的绘制指令。
4、-e参数,在Contents中查找指定的操作符指令(可指定匹配序号),并删除该指令开始的指定长度部分(通过Operators.txt计算删除长度)。通常用于删除曲线水印的指令段。
5、-w、-h参数,指定要删除的水印图片宽高尺寸。
6、-t参数,查找相关的文本(ASCII或16进制字节码)和操作指令(支持?和*通配符,使用!表示跳过的匹配项)。支持多文本。操作指令是PDF文件中用于定义文本/颜色/位置等的规定字符串。
7、-r参数指定替换内容(ASCII或16进制字节码)。支持多文本。
8、-q参数,删除qQ操作符之间的绘图水印,暂不支持嵌套。仅供测试。推荐使用 -e 参数替代。
9、-d参数,删除BDC/BMC操作符的绘图水印或Artifact工件水印。
10、-k参数,自定义跳过的水印序号(从1开始)。
11、-c参数,添加裁剪框,使用裁剪框删除位于页面有效文本区域外(上下左右)的水印。需要指定以左下角为原点的x,y,w,h数值。
12、-i参数,删除Widget。
13、-a参数,删除注释/超链接。
14、-u参数,OwnerPassword权限密码更改为"666",开放全部编辑权限。
15、-s参数,删除文档中的数字签名/签章。

使用方法:
拖拽PDF(碰运气):直接拖拽Pdf文件到软件图标上,可以自动删除每页最小宽高的图片、自动去除简单的绘图水印(曲线水印)、自动去除扫描王的文本水印。
命令行(强烈推荐):
1、进入控制台窗口(按Win-r,输入cmd,确定)。如果PDFCommander.exe在D盘,就输入D:回车,然后输入 cd PDFCommander.exe文件所在的目录,回车。
2、把pdf文件拷贝到PDFCommander.exe文件所在的目录中,然后输入 PDFCommander -f 你的文件.pdf -o,查看pdf文件的contents和Text信息,分析水印。更多命令看压缩包中的说明。

PDF Commander 命令行参数界面


PDFCommander v1.20 下载(解压缩密码是软件名) 本软件直接操作PDF流,对PDF无损。速度非常快。运行环境:.Net Framework 4.7.2。支持Windows7及以上操作系统。

更新:
v1.12 增加去除数字签名功能。增加裁剪框去除水印功能。删除-b参数,文本和16进制字节统一用-t参数。-r参数支持多文本(匹配-t的文本数量)。
v1.15 文档分析由-v参数改为-o参数。-p参数改为自定义页码。新增-k参数用于自定义跳过的水印序号。
v1.16 文档分析的-o参数输出增加颜色和位置操作符数据。修复-t参数通配符查找bug。修复-s参数bug。
v1.18 文档分析的-o参数输出增加文本位置数据,可显示大部分PDF文本的位置、16进制数据和文本字符串(不能显示CID->UNICODE映射不正确的文字),方便迅速定位文本水印。修复-o参数bug。-o参数增加PDF文档结构Detail输出。-t参数增加跳过匹配项功能,用!表示不做替换的匹配项。
v1.20 增加-e参数,删除指令段。如果曲线水印无法从正文中区分,可以试试此参数。-o参数增加Operators输出,此文件用于计算-e参数需要的长度。

操作:拖拽Pdf到软件图标(仅针对扫描王或者夸克),或者使用命令行(推荐)。如果要批量处理文件,看 这里。Python批量调用看 这里。
说明:各种繁杂的水印需要使用命令行参数-o 分析Contents和Text,然后使用 -t 、-r 等参数配合才能处理。需要替换的文本以Contents文件输出为准,Text文件输出供精确查看参考。推荐看看压缩包中的命令行说明和测试PDF目录中的一些bat。示例中包括了处理水印的几种思路:删文本、删图片、删绘图指令、改颜色、改位置、添加裁剪框。
提示:查看Pdf文件内部结构,分析水印。请使用命令行 PDFCommander -f 你的文件.pdf -o

PDF格式解析:百度 搜 PDF标准详解、PDF文档结构之类的文章,或者下载pdf_reference_1.7.pdf (官方英文文档)

提示:如果PDF中的正文文本和水印都是用绘图指令绘制的,这种情况无法简单区分水印,自然也不能靠拖拽去除。
         此类复杂水印需要分析产生水印相关操作符,并使用命令行参数处理(可以考虑替换颜色、修改绘制位置、设置裁剪框、删除指令段等方法)。

参考效果:

顺便说一下,本软件不提供UI界面,原因是写UI代码时间太长,电费太贵。
*********************************************************************

写这个软件的初衷是学校老师天天发扫描王弄出来的PDF试卷打印,浪费墨水。只好自己写个软件去掉。
至于老师为什么不用BD扫描,那我就不知道了...

关于PDF水印的事,这东西有好多种,文字的,图片的,曲线绘制的等等各种路数。在去水印之前,先弄清楚是哪种水印。
推荐使用-o参数输出Detail、Contents、Text、Annots等内容进行分析,确定水印数据(需要有点PDF解析能力)。
也可以使用PDFPatcher或者PDFBox的debugger分析文档结构,参见示例。


使用说明

如果觉得软件对您有用,请免费评个分,谢谢!

Elaineliu 发表于 2024-7-13 20:31

collinchen1218 发表于 2024-7-13 20:10
开个会员就完事了,不想开会员就积分领会员,再不愿意就导出为图片,电脑acrobat合并

能开会员的,一般都不在这个论坛

lightac 发表于 2024-7-13 22:04

本帖最后由 lightac 于 2024-7-13 22:06 编辑

如果只是扫描之类的,手机的布丁扫描就很方便,直接扫了,PDF或者图片格式,然后就可以用,没有水印什么的。

Elaineliu 发表于 2024-8-30 19:03

本帖最后由 Elaineliu 于 2024-8-30 23:10 编辑

axiong 发表于 2024-8-30 18:53
您试试这个,删除红色字体的内容,汉字中间夹杂了两个英文“ST”。谢谢,这么快就回复了
通过 ...
PDFCommander.exe -f stm32.pdf -t "41.6604 Tm" -r "900 Tm"

手挽离人.Lon 发表于 2024-10-31 13:54

最近在看考试的打印水印就烦人,顺便写一个python批量执行的
import os
import subprocess

# 定义PDF文件目录和命令路径
pdf_directory = r"大佬的文件和所有pdf在一个文件夹的路径"
pdf_commander_exe = os.path.join(pdf_directory, "PDFCommander.exe")
command_template = '{} -f "{}" -t "{}"'

# 定义要替换的字符串
replace_string = "需要替换的文本16进制字符串/根据自己需要自己替换"

# 遍历目录中的所有PDF文件并打印命令
pdf_files =

print("以下是需要执行的命令:")

for filename in pdf_files:
    if '-new.pdf' in filename:
      continue# 跳过已生成的新文件

    command = command_template.format(pdf_commander_exe, filename, replace_string)
    print(command)

    # 执行命令,隐藏cmd窗口
    subprocess.run(command, shell=True)

    # 构建新文件名
    new_filename = filename.replace('.pdf', '-new.pdf')

    # 删除原始文件
    original_file_path = os.path.join(pdf_directory, filename)
    new_file_path = os.path.join(pdf_directory, new_filename)

    if os.path.exists(new_file_path):
      os.remove(original_file_path)

print("\n所有PDF文件的水印已删除并删除了原始文件。")

Elaineliu 发表于 2024-11-2 19:17

本帖最后由 Elaineliu 于 2024-11-2 19:22 编辑

kiri2589 发表于 2024-11-2 13:49
我的需求非常简单,就是任意一个PDF文件中,的某个坐标下的某个文字或者图片的替换
你去买老马的pdftoys,这个软件支持正则。如果你会写的话,你可以实现一切愿望。

PDFCommander目前是个去水印为主的工具,暂时不考虑pdf文件的自由修改。

将来可能会提供Contents导入功能,但目前没有发现此功能在去水印方面的迫切性,所以没有列入开发计划。

Elaineliu 发表于 2024-10-14 15:03

chunlei233 发表于 2024-10-14 10:43
是不是单文件无关紧要,使用简单才是首先考虑的.

其实我最早的想法是对着PDF文件吹口气,然后水印就没了。

后来发现不行,只能自己写软件。

PDF水印有十几种生成策略,这口气不好吹。

Elaineliu 发表于 2024-8-21 12:18

xtang 发表于 2024-8-21 04:30
楼主,v1.9-u 还是不能清除(修改)pdf 保护密码啊(见我的https://wwzf.lanzouv.com/i8mvY2800plc 密码: ...

新密码是 666

-u处理之后的编辑权限都被打开了,也不需要这个密码。我用Adobe Acrobat Pro DC测试通过

baby528 发表于 2024-10-27 11:46

检查有水印的.detail文件发现,水印文字前面有“0.6 0.6 0.6 rg”,表示灰色,紧跟着“0.93969 0.34202 -0.34202 0.93969 0 -162 Tm”,感觉是含有位置和转角的矩阵,再后面就是“(....)Tj“,括号中为16进制的水印文字。这种编码有连续的几段,让水印出现在页面的不同高度。试过把“0.6 0.6 0.6 rg”替换成“0 0 0 rg”,用acrobat打开结果文件有警告,但水印消失,但在wps中打开水印还在。楼主有啥删除建议,.detail中片段如下
BT
/Xi2 12 Tf
/Xi3 gs
0.6 0.6 0.6 rg
0.93969 0.34202 -0.34202 0.93969 0 -162 Tm
(\t<0x40>...)Tj

Elaineliu 发表于 2024-10-4 00:42

本帖最后由 Elaineliu 于 2024-10-4 00:48 编辑

lforl 发表于 2024-10-3 21:04
神器,学会了一些技能,超赞!
【求助】如何去除每页某个固定区域的绘图形状!
批量去除某个区域内的链 ...
你发这种样本没什么用。除非你会看Contents



类似这样,横线部分是位置,改成负数就可以隐藏水印。或者画圈部分是颜色,改成白色也可以隐藏水印。

其它方法还可以改文本,改成空格就能删除水印。你在图片中可以找到文本编码之后的字符串。

修改水印的文本、位置、颜色是PDFCommander删除水印的常用手段。使用-t和-r参数。

当然,如果你啥都不想做,只想切掉位置在y=60以下的内容,那么使用 -c 参数,加个裁切框也可以。

Elaineliu 发表于 2024-10-21 19:51

本帖最后由 Elaineliu 于 2024-10-22 08:56 编辑

AlbertGandolf 发表于 2024-10-21 17:47
https://www.123684.com/s/TWczjv-FgNB
这个文件,我尝试PDFCommander -f 2012年考研英语二真题-世纪高教 ...
你这种在头尾的文字,用-c参数重设一个cropbox就行,参数自己试试。
pdf原来的参数是0 0 535.75 748.35,你试试-c 0,60,535.75,740
60处理下面那行字(增大),740处理上面那行(减小),不合适就自己改

另一个方法:
因为文本绘制是通过xobject进行的,也可以去掉绘制指令,使用 -t "/Fm? Do"

Elaineliu 发表于 2024-7-13 20:03

本帖最后由 Elaineliu 于 2024-9-18 00:48 编辑

有问题请回帖留言,并提供pdf网盘链接。

使用说明参见压缩包

lastmu 发表于 2024-7-13 20:06

找最小尺寸的图片,这个思路挺好。

tsyhome 发表于 2024-7-13 20:07

还没用过全能王!

collinchen1218 发表于 2024-7-13 20:10

开个会员就完事了,不想开会员就积分领会员,再不愿意就导出为图片,电脑acrobat合并

GXW1693 发表于 2024-7-13 20:44

收藏备用!谢谢分享!!!

fjm1124321 发表于 2024-7-13 20:50

收藏一下!~

lhfcsm 发表于 2024-7-13 21:00

呵呵,正在使用中

wkjxs2015 发表于 2024-7-13 21:22

dxxiong 发表于 2024-7-13 20:33
有意思的回复,我竟无法反驳

我开了会员,但是也支持楼主!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 【PDFCommander v1.20】永久免费的PDF万能水印删除工具,去水印、换颜色、删文本..