Java 删除PDF中的数字签名

本文通过Java程序示例代码展示如何来删除PDF文档中已有的数字签名。通过本文中的方法,在编辑代码前,须将 free spire.pdf.jar 4.4.1 文件导入java程序,如图所示为手动下载 jar包 然后解压导入程序的效果:

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>

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);