使用Java怎么给PDF添加数字签名

  介绍

本篇文章给大家分享的是有关使用Java怎么给PDF添加数字签名,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强> Jar文件获取及导入:

方法1:通过官网下载获取Jar包。下载后,解压文件,并将自由文件夹下的Spire.Pdf。Java jar文件导入程序。(如下图)

使用Java怎么给PDF添加数字签名”> </p> <p>方法2:通过maven仓库安装导入。具体安装教程详见此网页。</p> <p>示例1:添加文本数字签名</p> <pre类= import  com.spire.pdf.PdfDocument;,   import  com.spire.pdf.graphics.PdfTrueTypeFont,   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。*,   import  java.awt.geom.Point2D,   import  java.awt.geom.Rectangle2D,   ,   {public  class  TextSignature    public 才能;static  void  main (String [], args), {,//加文载PDF档,   PdfDocument  doc =, new  PdfDocument (),,   ,doc.loadFromFile (“C: \ \ \ \ Test1 \ \用户桌面\ \ Sample.pdf"),,//加载可以证书,   PdfCertificate  cert =, new  PdfCertificate (“C: \ \ \ \ Test1 \ \用户桌面\ \ gary.pfx",,“abc123"),,//添加数字签名,设置其位置和大小,   PdfSignature  signature =, new  PdfSignature(医生,,doc.getPages () . get (doc.getPages () .getCount() 1),,证书,,“MySignature"),,   Rectangle2D  rect =, new  Rectangle2D.Float (),,   rect.setFrame (new  Point2D.Float((浮动),doc.getPages () . get (0) .getActualSize () .getWidth(),安康;270年,(浮动),doc.getPages () . get (0) .getActualSize () .getHeight(),安康;300),,new 维度(200,,110)),,   signature.setBounds(矩形),,//设置签名为文本形式,   signature.setGraphicMode (GraphicMode.Sign_Detail);,//设置签名的内容,   signature.setNameLabel(“签字者:“),,   signature.setName (“Gary");,   signature.setContactInfoLabel(“联系电话:“),,   signature.setContactInfo (“010333555“),   signature.setDateLabel(“日期:“),,   signature.setDate (new  java.util.Date ()),,   signature.setLocationInfoLabel(“地点:“),,   signature.setLocationInfo (“US");,   signature.setReasonLabel(“原因:“),,   signature.setReason(“我是文档所有者“),,   signature.setDistinguishedNameLabel (“DN:“),,   ,signature.setDistinguishedName (signature.getCertificate () .get_IssuerName () . getname ()),,//设置签名的字体,   signature.setSignDetailsFont (new  PdfTrueTypeFont (new 字体(“Arial  Unicode  MS",, Font.PLAIN,, 11))),,//设置文档权限为禁止更改,   signature.setDocumentPermissions (PdfCertificationFlags.Forbid_Changes);,   signature.setCertificated(真正的),,//保存文档,   doc.saveToFile(“输出/TextSignature.pdf");,   doc.close (),,   ,,},   }

文本数字签名效果:

使用Java怎么给PDF添加数字签名”> </p> <p>示例2:添加图片数字签名</p> <pre类= import  com.spire.pdf.PdfDocument;,   import  com.spire.pdf.graphics.PdfImage,   import  com.spire.pdf.graphics.PdfTrueTypeFont,   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。*,   import  java.awt.geom.Point2D,   import  java.awt.geom.Rectangle2D,   ,   {public  class  ImageSignature    public 才能;static  void  main (String [], args), {,//加文载PDF档,   PdfDocument  doc =, new  PdfDocument (),,   doc.loadFromFile才能(“C: \ \ \ \ Test1 \ \用户桌面\ \ Sample.pdf"),,//加载可以证书,   PdfCertificate  cert =, new  PdfCertificate (“C: \ \ \ \ Test1 \ \用户桌面\ \ gary.pfx",,“abc123"),,   ,//添加数字签名,设置其位置和大小,   PdfSignature  signature =, new  PdfSignature(医生,,doc.getPages () . get (doc.getPages () .getCount() 1),,证书,,“MySignature"),,   Rectangle2D  rect =, new  Rectangle2D.Float (),,   rect.setFrame (new  Point2D.Float((浮动),doc.getPages () . get (0) .getActualSize () .getWidth(),安康;250年,(浮动),doc.getPages () . get (0) .getActualSize () .getHeight(),安康;300),,new 维度(170,,150)),,   signature.setBounds(矩形),,//设置签名为图片形式,   signature.setGraphicMode (GraphicMode.Sign_Image_Only);,   signature.setSignImageSource才能(PdfImage.fromFile (“C: \ \ \ \ Test1 \ \用户桌面\ \ Image.png")),,//设置签名的字体,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

使用Java怎么给PDF添加数字签名