java批量去除pdf签名,删除签名图标

1.需求

接到这样一个需求,现在有大量的pdf文件按需要去除签名,和文件里的签名图标。pdf包含图标等复杂元素,使用了icepdf操作pdf

2.思路

如果单独只是去除签名,直接就能想到pdf转图片,再将图片合成pdf即可,如果有这个需求直接点击 网盘链接,密码私信我

3.单独只是去除签名

在这里插入图片描述
需要操作两个文件Main、和ImageToPDF,

3.1 Main:

这个类是将pdf切片成图片
在这里插入图片描述
参数说明:path是一个文件夹,里面包含若干pdf文件,savepath是生成的pdf图片的文件夹,里面包含若干文件夹,文件名称是pdf名,里面是png图片,有几页就有几张图片

3.2 ImageToPDF

这个类是将上面切成的图片转成pdf文件
在这里插入图片描述

如果你只是单纯的去除文件打开后显示有签名,那么到现在你已经成功了,如果你想继续去除pdf里的签名图标请继续往下看

4.去除pdf文件中的签名图标

来看个例子例1
在这里插入图片描述

类似这种的签名图标非常不好看,通常pdf背景是白色的,可以想到用白色盖住图标就可以了,但是每个图标的位置没法确定,接下来介绍如何确定签名图标的位置

5. 如何确定签名图标的位置?

由于签名图标的位置不唯一,接下来会介绍3种方法,效果最好的是5.3

5.1 函数法

此方法适用于 图标的签名文字位置一定,图标大小,颜色一定且与pdf背景色不近似的情况下,我们之前的到了pdf的图片文件,通过获取图片中像素的RGB分布,例如上图的图标,我们可以用ps打开上面的图片,用颜色吸取图标颜色,R:0 G:134 B:219,使用java循环遍历图片的像素,如果像素的rgb在这个区间,记录像素的横纵坐标,对得到的像素坐标求和取平均值,就可以近似的得到图标的中心,接下来使用java的画笔,在图片上绘制纯白的矩形框即可,但是这个操作难度系数过高,容易遮盖页面其他内容
效果:3星

5.2 像素替换法

此方法使用于纯色图标,没有签名文字的情况下,承接5.1的内容,我们可以在循环判断颜色区间时,用setColor方法将符合图标颜色范围的像素改成纯白色,但是需要不断的调整参数
效果:3星

5.3 AI获取图标位置

这里介绍百度EasyDL平台,网址:百度EasyDL官网
1.准备10张含有签名图标的图片,保存在一个英文名下
2.打开上面的官网选择EasyDL经典版,点击立即使用,选择视觉下的物体检测
3.点击创建模型,填写名称等信息点击下一步
在这里插入图片描述
4.点击数据总览,然后选择创建数据集在这里插入图片描述
5.填写名称,点击完成在这里插入图片描述
6.点击导入在这里插入图片描述
7.选择本地数据集,旁边的选择上传图片,选择你保存的文件夹里的所有图片(建议15-20张即可)
在这里插入图片描述
8.导入后选择标注,按住鼠标右键拖拽,使蓝色框覆盖签名图标,将导入的图片全部标注在这里插入图片描述
9.点击训练模型,选择标注好的数据集,点击开始训练即可
在这里插入图片描述
10.大概20分钟左右训练成功,在我的模型里申请,稍等一下就会成功
在这里插入图片描述

11.点击服务详情,得到这串地址即可
这个项目已经写好,需要配合上面的pdf转图片使用,链接:项目链接,需要的私信下密码
在这里插入图片描述
12.长话短说!
需要改的地方:EasydlImageClassify、PlantImage.
EasydlImageClassify:
在这里插入图片描述
下面这俩需要去百度Ai注册个应用即可获得
PlantImage:
在这里插入图片描述
这里的地址换成你在文件夹里生成的pdf图片的目录
开始运行即可,运行完成后,配合之前的项目,将图片转成pdf 文件即可完美去除数字签名和图标签名

效果:5星

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值