这篇文章将介绍如何在Java应用程序中给PDF文档添加数字签名。

使用工具:

Free Spire.PDF for JAVA

步骤:

1.创建一个Java project,并添加一个class SignPDF.JAVA

2.下载Free Spire.PDF for JAVA包并解压缩,然后从lib文件夹下,导入Spire.Pdf.jar包和Spire.Common.jar包到程序中:

3.SignPDF.JAVA中添加代码:

import com.spire.ms.System.DateTime;
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfImage;
import com.spire.pdf.security.GraphicMode;
import com.spire.pdf.security.PdfCertificate;
import com.spire.pdf.security.PdfCertificationFlags;
import com.spire.pdf.security.PdfSignature;
import java.awt.geom.Rectangle2D;public class SignPDF {public static void main(String[] args){//加载PDF文档并获取第一页PdfDocument doc = new PdfDocument();doc.loadFromFile("Input.pdf");PdfPageBase page = doc.getPages().get(0);Rectangle2D.Float rec = new Rectangle2D.Float(100, 450, 310, 100);//Load pfx文件PdfCertificate certificate = new PdfCertificate("gary.pfx", "e-iceblue");//添加数字签名PdfSignature signature = new PdfSignature(doc, page, certificate, "signature1", rec);//设置签名详细信息PdfImage img = PdfImage.fromFile("E-iceblueLogo.png");signature.setSignImageSource(img);signature.setNameLabel("Signer:  ");signature.setName("Gary");signature.setContactInfoLabel("ContactInfo:  ");signature.setContactInfo("support@e-iceblue.com");signature.setDateLabel("Date:  ");signature.setDate(DateTime.getToday());signature.setLocationInfoLabel("Location:  ");signature.setLocationInfo("Chengdu");signature.setReasonLabel("Reason:  ");signature.setReason("The certificate of this document.");signature.setDistinguishedNameLabel("DL:  ");signature.setDistinguishedName(signature.getCertificate().get_IssuerName().getName());signature.setGraphicMode(GraphicMode.Sign_Image_And_Sign_Detail);signature.setDocumentPermissions(PdfCertificationFlags.Allow_Form_Fill);signature.setCertificated(true);//保存文件doc.saveToFile("SimpleSign.pdf", FileFormat.PDF);}
}

结果文件:

Java PDF数字签名(一) - 添加数字签名相关推荐

  1. java pdf库_Java中常用的操作PDF的类库

    iText iText是一个能够快速产生PDF文件的java类库.iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的.它的类库尤其与java Servlet有很好的给合.使用 ...

  2. Java PDF数字签名(五)—Java 给PDF签名时添加可信时间戳

    一.程序运行环境 编译环境:IntelliJ IDEA 所需测试文件:PDF..pfx数字证书及密钥.PDF Jar包(Free Spire.PDF for Java).签名图片(.png格式) 可信 ...

  3. java pdf电子签名_如何使用java在数字签名的pdf中添加空白页?

    沧海一幻觉 要将Joeri的答案放到上下文中,请看Adobe技术白皮书AdobeAcrobat 9数字签名.更改和改进,尤其是它的"允许和不允许的更改"部分.这里是Adobe澄清允 ...

  4. Java PDF数字签名(三)- 添加空白签名域

    有时候我们需要在PDF文档中添加空白的签名域,然后发给客户,由客户签名.这篇文章将介绍如何在Java应用程序中给PDF文档添加空白的签名域. 步骤: 1.创建一个Java project,并添加一个c ...

  5. 怎么给PDF添加数字签名?

    "互联网+"时代每天都有大量的数据信息进行传播和分享,但伴随而来的网络安全问题日益凸显,各行各业都为如何提高重要文件传递安全而绞尽脑汁.现在有了PDF文档签名证书,,其强大的安全性 ...

  6. 【itext学习之路】--5.对pdf进行盖章/签章/数字签名

    来源:[itext学习之路]-------(第五篇)对pdf进行盖章/签章/数字签名_tomatocc的博客-CSDN博客_itext 数字签名 在上一篇文章中,我们学习了使用itext对pdf增加图 ...

  7. java pdf 书签_Java PDF书签——添加、编辑、删除、读取书签

    本文介绍通过Java程序来操作PDF书签,根据对书签的不同操作要求,分以下情况来介绍: 1. 添加书签(包括添加一级书签.多级子书签) 3. 删除书签(包括删除所有书签.删除子书签等) 4. 读取书签 ...

  8. java -PDF添加文本水印与图片水印

    java pdf添加水印文本及图片文本 PDF文件添加文本水印: private static int interval = 30;public static voidwaterMark(String ...

  9. java pdf设置页码_Java 添加页码到PDF文档

    本文介绍通过Java程序来添加页码到PDF文档的方法. 使用工具:Free Spire.PDF for Java (免费版) Jar文件获取及导入: 方法1:可通过官网下载jar文件包.下载后,解压文 ...

最新文章

  1. 上的img表示什么_方向盘上的SET、RES和CNL,表示什么意思?别弄错了
  2. SCCM2012 R2集成WSUS服务器-4:部署软件更新组
  3. 深度学习之卷积神经网络 VGGNet
  4. java redis tokenid_基于Spring及Redis的Token鉴权
  5. GridView类容器中的DropDownList联动
  6. 【vue】 vue中的query 路由传值的方式
  7. excel打开2个独立窗口_喜欢用华为手机拍照,记得打开这2个开关,能让照片更加清晰...
  8. pycharm中查看快速帮助与python官方帮助文档
  9. 黑马程序员Java基础视频教程-课程总结文档
  10. 中药学(综合练习)题库【1】
  11. 计算机基础-路由器、光猫、交换机、电脑之间的连接关系
  12. 洛谷P1007独木桥题解--zhengjun
  13. php上传文件到指定文件夹
  14. 电脑现在找不到驱动器,设备管理器显示DVD/CD-ROM驱动器是黄色感叹号
  15. centos7是linux内核,在CentOS 7上用源代码编译最新的Linux内核
  16. 如何禁用WordPress程序REST API功能且移除wp-json链接
  17. 单片机复位后为什么要对sp重新赋值_单片机常用名词解释与常用逻辑电路
  18. 【Python】函数
  19. 详解ABAP Selection Screens
  20. 微星 msi B450迫击炮+2600X+RX588 3A平台装机

热门文章

  1. 只有程序员才懂的笑话
  2. 解决 Signed Claims JWSs are not supported. 异常
  3. PHP中如何使用socket进行通信?
  4. 华为IPsec实现支部与支部间借助总部进行隧道中转
  5. 2022中级Android开发面试解答,当上项目经理才知道
  6. sonic云真机通过linux系统接入苹果手机
  7. CNN原理及模型参数
  8. ElementUI表格吸顶(sticky)
  9. 【更新于12.29】深度学习论文汇总
  10. Linux应用:安装Nginx