`

Java 获取PDF中的数字签名信息

阅读更多

一、概述及程序环境要求

本文以Java代码演示如何获取PDF文档中的数字签名信息,包括签名人、签名位置、日期、原因、联系方式、签名在文档中的坐标等等。

程序环境包括:

  • Spire.Pdf.jar(jar版本:3.11.6
  • Jdk 1.8.0(版本要求>=1.6.0版本即可)
  • IDEA

 

 

编辑代码前先导入jar到Java程序,两种导入方法供选择,可按需任选其一即可:

1. 下载jar包导入:下载后解压到指定路径,并将lib文件夹下的spire.pdf.jar手动导入Java程序;

 

2. maven程序中配置pom.xml文件,指定spire的maven路径及依赖,参考如下:

<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</artifactId>
  <version>3.11.6</version>
</dependency>
</dependencies>

 配置完成后,导入jar到程序。

 

注:程序环境可不用安装Adobe Acrobat

 

二、Java代码

import com.spire.pdf.*;
import com.spire.pdf.security.PdfSignature;
import com.spire.pdf.widget.PdfFormFieldWidgetCollection;
import com.spire.pdf.widget.PdfFormWidget;
import com.spire.pdf.widget.PdfSignatureFieldWidget;

public class GetSignature {
    public static void main(String[] args) {
        //创建PdfDocument实例
        PdfDocument pdf = new PdfDocument();
        //加载含有签名的PDF文件
        pdf.loadFromFile("AddSignature.pdf");

        //获取域集合
        PdfFormWidget pdfFormWidget = (PdfFormWidget) pdf.getForm();
        PdfFormFieldWidgetCollection pdfFormFieldWidgetCollection = pdfFormWidget.getFieldsWidget();

        //遍历域
        for (int i = 0; i < pdfFormFieldWidgetCollection.getCount(); i++) {
            //判定是否为签名域
            if (pdfFormFieldWidgetCollection.get(i) instanceof PdfSignatureFieldWidget) {
                //获取签名域
                PdfSignatureFieldWidget signatureFieldWidget = (PdfSignatureFieldWidget) pdfFormFieldWidgetCollection.get(i);
                //获取签名
                PdfSignature signature = signatureFieldWidget.getSignature();
                String location = signature.getLocationInfo();
                String reason = signature.getReason();
                String data = signature.getDate().toString();
                String name = signature.getSignatureName();

                System.out.println("签名位置信息:"+ location +"\n"+
                        "签名原因:" + reason +"\n"+
                        "签名日期:"+ data +"\n"+
                        "签名人:"+ name +"\n"+
                        "文档中的签名坐标:X = "+ signatureFieldWidget.getLocation().getX()+ "  Y = "+ signatureFieldWidget.getLocation().getY()
                       );
            }
        }
    }
}

 

 

0
1
分享到:
评论

相关推荐

    java多种方式实现pdf文件电子签名

    然后,通过iTextPDF的SignatureAppearance和PdfStamper类,可以创建一个可视化的签名字段,并将数字签名应用到PDF文档的特定位置。同时,还需要设置相关的签名属性,如签名的名称、原因等,以确保签名的完整性和合法...

    Java PDF 添加数字签名的实现方法

    在 Java 中,我们可以使用 Spire.PDF for Java 来实现 PDF 文档的数字签名。 Spire.PDF for Java 是一个功能强大且易用的 Java 库,能够帮助开发者快速地生成、编辑和操作 PDF 文档。在添加数字签名时,我们需要...

    java获取数字证书信息

    在本篇文章中,我们将深入探讨如何使用Java来获取数字证书的信息,包括使用TOMCAT和JDK搭建SSL服务的过程、如何用OpenSSL签发证书以及如何支持第三方CA等内容。 #### 一、使用TOMCAT和JDK搭建SSL服务 ##### 1. ...

    对pdf文档进行数字签名

    在本主题中,我们将深入探讨PDF数字签名的概念、实现方式以及相关工具。 首先,我们需要理解什么是数字签名。数字签名是一种基于非对称加密算法(如RSA或DSA)的技术,用于验证数据的完整性和发送者的身份。它包括...

    java实现PDF签章功能

    PDFBox提供了对PDF文档的低级访问,使得添加数字签名成为可能。在Java代码中,你需要创建一个PDFSignatureAppearance对象,然后使用PKCS#12证书(通常以.p12文件形式存在)进行签名。 接下来,我们来看看iText库。...

    Java给pdf加盖电子章

    总的来说,Java为PDF加盖电子章涉及到PDF处理、数字签名和加密技术等多个领域,需要对这些概念有深入的理解,并选择合适的库来实现。通过实践和参考"demoTest"中的代码,开发者可以快速掌握这一技能,将其应用于各种...

    java pdf 实现电子签章下载

    Java PDF实现电子签章是PDF文档处理中的一个重要技术,它涉及到PDF库的使用以及数字证书的应用。在这个场景中,我们关注的是使用iTextPDF和PDFBox两个流行的Java库来完成电子签章的功能。这两个库提供了丰富的API,...

    JAVA PDF JAVA PDF JAVA PDF

    同时,PDFBox还支持表单填写、数字签名等功能,这些都需要对PDF标准有较深入的理解。 除了PDFBox,iText库也有其独特之处。它的API更加面向对象,使用`Document`、`Paragraph`、`Font`等类可以直接构建PDF内容。...

    java实现pdf文件的电子签字+盖章+防伪二维码+水印+PDF文件加密

    首先,你需要获取用户的私钥和公钥证书,然后使用iText的PdfStamper类将签名插入到PDF中。 **盖章** PDF盖章类似于纸质文档上的实体印章,它提供了视觉上的确认。iText提供了PdfStamper类的addStamp方法,可以创建...

    java 生成pdf 签章

    在Java开发中,生成PDF并为其添加电子签章是一项常见的任务,这主要涉及到PDF文档处理和数字签名技术。本文将详细介绍如何使用Java实现这一功能,包括三种可行的技术,并结合提供的"signPDF"压缩包文件,解析其可能...

    java操作PDF表单

    通过研究源码,你可以更深入地了解如何将这些库集成到你的项目中,以及如何处理各种 PDF 表单交互问题,如字体嵌入、数字签名等。 在实际开发中,确保正确处理 PDF 表单的兼容性和格式问题至关重要。不同 PDF 创建...

    java使用pdf模板套打二维码,文字,表格示例

    - 可以设置PDF的安全性,如权限控制、数字签名等。 在`PdfTestPlat`这个例子中,可能包含了一个测试平台,用于演示如何实现上述功能。可能包括一个主程序,加载模板,根据输入数据生成PDF,以及相关的配置和数据类...

    java解析pdf框架pdfbox

    - PDF签名和验证:PDFBox支持在PDF上添加数字签名以及验证已存在的签名。 - PDF加密和解密:可以对PDF进行加密保护,或者解除加密以便编辑。 - 页面操作:添加、删除或移动PDF页面。 - 元数据处理:读取或修改...

    java 引用 pdf模板

    - iText是另一个强大的PDF处理库,提供了更多高级功能,如表单处理、数字签名等。 - 使用iText,你可以通过`Document`和`PdfWriter`类加载PDF模板,然后使用`ColumnText`或`PdfStamper`对象来插入内容。 - 通过`...

    pdfdigisign:一个用于签名和验证PDF文件中的数字签名的Java库

    PDFdigisign是一个Java库,专门设计用于对PDF文档进行数字签名和验证。在深入讨论这个库之前,让我们首先理解一下数字签名的概念及其在PDF文件中的应用。 数字签名是一种先进的安全技术,它允许用户在电子文档上...

    JAVA PDF 水印生成

    3. **创建Acrobat公钥认证**:如果需要对PDF进行数字签名,需要创建一个Acrobat公钥认证。这一步不是必须的,仅在需要确保PDF未被篡改时使用。 4. **创建Watermark**:定义水印的样式,包括文本、字体、大小、颜色...

    生成电子签名和印章的pdf文件demo

    1. **阅读接口说明**:首先,详细阅读001_Java_快捷签接口调用说明,了解如何初始化接口、获取用户认证信息以及如何调用签名服务。 2. **集成SDK**:解压快捷签SDK ZIP文件,将库文件添加到Java项目的类路径中,...

    java生成pdf所需jar包

    除了基本的文本和图像操作,iText还支持更复杂的功能,如表单填写、数字签名、PDF/A合规性、PDF加密、书签和超链接等。如果你需要利用PDF模板进行导出,可以使用预先设计好的PDF模板,然后通过AcroFields类来填充...

    itext 给pdf文件签名

    在本篇中,我们将深入探讨如何使用IText为PDF文件添加数字签名。 首先,了解PDF签名的基本概念至关重要。PDF签名本质上是将一个证书(通常由权威的证书颁发机构颁发)与PDF文档的内容哈希值绑定。这个哈希值代表了...

    java生成pdf文件

    7. **高级操作**:除了基本的文本和图像,iText还支持创建表单、书签、超链接、水印、数字签名等功能,可以满足复杂的PDF需求。 8. **版本升级**:尽管提供的iText版本较旧,但为了获得更好的性能和安全性,建议...

Global site tag (gtag.js) - Google Analytics