首页 > 知识问答文章正文

Java 删除PDF中的数字签名

知识问答 2022-02-13 21:55:25 admin

本文通过Java程序示例代码展示如何来删除PDF文档中已有的数字签名。

工具/材料

PDF测试文档

代码编译环境:IDEA

Jdk:1.8.0

PDF库:free spire.pdf.jar4.4.1

操作方法

【步骤01】

导入jar文件到Java程序,如图:
注:如图所示为手动下载jar包然后解压导入程序的效果(可自行搜索下载);另外,也可以通过maven仓库下载导入,通过这种方式需在pom.xml文件中配置maven仓库路径并指定jar版本(如下),配置完成后导入。
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId> e-iceblue </groupId>
<artifactId>spire.pdf.free</artifactId>
<version>4.4.1</version>
</dependency>
</dependencies>

【步骤02】

Java程序中键入如下代码:
import com.spire.pdf.PdfDocument;
import com.spire.pdf.widget.PdfFieldWidget;
import com.spire.pdf.widget.PdfFormWidget;
import com.spire.pdf.widget.PdfSignatureFieldWidget;

public class DeleteSignature {

public static void main(String[] args) {
//创建PdfDocument对象
PdfDocument pdf = new PdfDocument();

//加载PDF文档
pdf.loadFromFile("AddSignature.pdf");

//从文档获取form widget集合
PdfFormWidget widgets = (PdfFormWidget) pdf.getForm();

//遍历集合中的每一个元素
for (int i = 0; i < widgets.getFieldsWidget().getList().size(); i++)
{
//获取指定widget
PdfFieldWidget widget = (PdfFieldWidget)widgets.getFieldsWidget().getList().get(i);

//判断widget是否为PdfSignatureFieldWidget
if (widget instanceof PdfSignatureFieldWidget)
{
//删除数字签名widget
widgets.getFieldsWidget().remove(widget);
}
}

//保存文档
pdf.saveToFile("RemoveSignature.pdf");
pdf.dispose();
}
}

【步骤03】

执行程序,在生成的结果文档中可查看签名删除效果,如下图所示:

标签:

发表评论

评论列表

可盼网Copyright @ 2011-2024 All Rights Reserved. |版权所有 备案号: 豫ICP备2022006457号-8