本文以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() ); } } } }
相关推荐
然后,通过iTextPDF的SignatureAppearance和PdfStamper类,可以创建一个可视化的签名字段,并将数字签名应用到PDF文档的特定位置。同时,还需要设置相关的签名属性,如签名的名称、原因等,以确保签名的完整性和合法...
在 Java 中,我们可以使用 Spire.PDF for Java 来实现 PDF 文档的数字签名。 Spire.PDF for Java 是一个功能强大且易用的 Java 库,能够帮助开发者快速地生成、编辑和操作 PDF 文档。在添加数字签名时,我们需要...
在本篇文章中,我们将深入探讨如何使用Java来获取数字证书的信息,包括使用TOMCAT和JDK搭建SSL服务的过程、如何用OpenSSL签发证书以及如何支持第三方CA等内容。 #### 一、使用TOMCAT和JDK搭建SSL服务 ##### 1. ...
在本主题中,我们将深入探讨PDF数字签名的概念、实现方式以及相关工具。 首先,我们需要理解什么是数字签名。数字签名是一种基于非对称加密算法(如RSA或DSA)的技术,用于验证数据的完整性和发送者的身份。它包括...
PDFBox提供了对PDF文档的低级访问,使得添加数字签名成为可能。在Java代码中,你需要创建一个PDFSignatureAppearance对象,然后使用PKCS#12证书(通常以.p12文件形式存在)进行签名。 接下来,我们来看看iText库。...
总的来说,Java为PDF加盖电子章涉及到PDF处理、数字签名和加密技术等多个领域,需要对这些概念有深入的理解,并选择合适的库来实现。通过实践和参考"demoTest"中的代码,开发者可以快速掌握这一技能,将其应用于各种...
Java PDF实现电子签章是PDF文档处理中的一个重要技术,它涉及到PDF库的使用以及数字证书的应用。在这个场景中,我们关注的是使用iTextPDF和PDFBox两个流行的Java库来完成电子签章的功能。这两个库提供了丰富的API,...
同时,PDFBox还支持表单填写、数字签名等功能,这些都需要对PDF标准有较深入的理解。 除了PDFBox,iText库也有其独特之处。它的API更加面向对象,使用`Document`、`Paragraph`、`Font`等类可以直接构建PDF内容。...
首先,你需要获取用户的私钥和公钥证书,然后使用iText的PdfStamper类将签名插入到PDF中。 **盖章** PDF盖章类似于纸质文档上的实体印章,它提供了视觉上的确认。iText提供了PdfStamper类的addStamp方法,可以创建...
在Java开发中,生成PDF并为其添加电子签章是一项常见的任务,这主要涉及到PDF文档处理和数字签名技术。本文将详细介绍如何使用Java实现这一功能,包括三种可行的技术,并结合提供的"signPDF"压缩包文件,解析其可能...
通过研究源码,你可以更深入地了解如何将这些库集成到你的项目中,以及如何处理各种 PDF 表单交互问题,如字体嵌入、数字签名等。 在实际开发中,确保正确处理 PDF 表单的兼容性和格式问题至关重要。不同 PDF 创建...
- 可以设置PDF的安全性,如权限控制、数字签名等。 在`PdfTestPlat`这个例子中,可能包含了一个测试平台,用于演示如何实现上述功能。可能包括一个主程序,加载模板,根据输入数据生成PDF,以及相关的配置和数据类...
- PDF签名和验证:PDFBox支持在PDF上添加数字签名以及验证已存在的签名。 - PDF加密和解密:可以对PDF进行加密保护,或者解除加密以便编辑。 - 页面操作:添加、删除或移动PDF页面。 - 元数据处理:读取或修改...
- iText是另一个强大的PDF处理库,提供了更多高级功能,如表单处理、数字签名等。 - 使用iText,你可以通过`Document`和`PdfWriter`类加载PDF模板,然后使用`ColumnText`或`PdfStamper`对象来插入内容。 - 通过`...
PDFdigisign是一个Java库,专门设计用于对PDF文档进行数字签名和验证。在深入讨论这个库之前,让我们首先理解一下数字签名的概念及其在PDF文件中的应用。 数字签名是一种先进的安全技术,它允许用户在电子文档上...
1. **阅读接口说明**:首先,详细阅读001_Java_快捷签接口调用说明,了解如何初始化接口、获取用户认证信息以及如何调用签名服务。 2. **集成SDK**:解压快捷签SDK ZIP文件,将库文件添加到Java项目的类路径中,...
3. **创建Acrobat公钥认证**:如果需要对PDF进行数字签名,需要创建一个Acrobat公钥认证。这一步不是必须的,仅在需要确保PDF未被篡改时使用。 4. **创建Watermark**:定义水印的样式,包括文本、字体、大小、颜色...
除了基本的文本和图像操作,iText还支持更复杂的功能,如表单填写、数字签名、PDF/A合规性、PDF加密、书签和超链接等。如果你需要利用PDF模板进行导出,可以使用预先设计好的PDF模板,然后通过AcroFields类来填充...
在本篇中,我们将深入探讨如何使用IText为PDF文件添加数字签名。 首先,了解PDF签名的基本概念至关重要。PDF签名本质上是将一个证书(通常由权威的证书颁发机构颁发)与PDF文档的内容哈希值绑定。这个哈希值代表了...
5. **签署PDF文档**:PDFBox提供了数字签名的功能,通过`PDSignature`类可以实现对PDF的电子签名,确保文档的完整性和不可篡改性。 6. **PDF元数据处理**:你可以使用PDFBox读取或修改PDF文档的元数据,如Title、...