亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Java實現添加、驗證PDF數字簽名的方法示例

瀏覽:4日期:2022-08-08 18:22:33
目錄Jar文件獲取及導入方法:

在設置文檔內容保護的方法中,除了對文檔加密、添加水印外,應用數字簽名也是一種有效防偽手段。數字簽名的文件比較容易驗證,并且具有較高的權威性和可信度。在PDF文檔中,有可直接添加或驗證數字簽名的功能方法,下面的文章中,將通過Java程序來介紹添加數字簽名到PDF文檔,以及驗證簽名是否有效。

使用工具:Spire.PDF for Java

Jar文件獲取及導入方法:

方法1:可通過官網下載jar文件包。下載后,解壓文件,并將lib文件夾下的Spire.Pdf.jar文件導入到Java程序。參考如下導入效果:(這里程序將jar文件分別導入了兩個module)

Java實現添加、驗證PDF數字簽名的方法示例

方法2:可通過maven倉庫安裝導入。

Java代碼示例

【示例1】添加數字簽名到PDF

import com.spire.pdf.*;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 AddCertificate { public static void main(String[]args){//加載PDF文檔PdfDocument doc = new PdfDocument();doc.loadFromFile('test.pdf');//加載pfx證書,及證書秘鑰PdfCertificate cert = new PdfCertificate('Cermia.pfx','123654yes!');//添加數字簽名到指定頁面,并設置其位置和大小PdfSignature signature = new PdfSignature(doc, doc.getPages().get(2), cert, 'MySignature');Rectangle2D rect = new Rectangle2D.Float();rect.setFrame(new Point2D.Float((float) doc.getPages().get(0).getActualSize().getWidth() - 340, (float) doc.getPages().get(0).getActualSize().getHeight() - 230), new Dimension(280, 150));signature.setBounds(rect);//設置簽名為圖片加文本模式signature.setGraphicMode(GraphicMode.Sign_Image_And_Sign_Detail);//設置簽名的內容signature.setNameLabel('簽字者:');signature.setName('Mia');signature.setContactInfoLabel('聯系電話:');signature.setContactInfo('02881705109');signature.setDateLabel('日期:');signature.setDate(new java.util.Date());signature.setLocationInfoLabel('地點:');signature.setLocationInfo('成都');signature.setReasonLabel('原因:');signature.setReason('文檔所有者');signature.setDistinguishedNameLabel('DN: ');signature.setDistinguishedName(signature.getCertificate().get_IssuerName().getName());signature.setSignImageSource(PdfImage.fromFile('sign.png'));//設置簽名的字體signature.setSignDetailsFont(new PdfTrueTypeFont(new Font('Arial Unicode MS', Font.PLAIN, 9)));//設置文檔權限為禁止更改signature.setDocumentPermissions(PdfCertificationFlags.Forbid_Changes);signature.setCertificated(true);//保存文檔doc.saveToFile('AddSignature.pdf');doc.close(); }}

數字簽名添加效果:

Java實現添加、驗證PDF數字簽名的方法示例

【示例2】驗證數字簽名有效性

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;import javax.swing.*;public class ValidateSignature { public static void main(String[]args){//創建PdfDocument實例PdfDocument doc = new PdfDocument();//加載含有簽名的PDF文件doc.loadFromFile('SignnedFile.pdf');//獲取域集合PdfFormWidget pdfFormWidget = (PdfFormWidget) doc.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();//判定簽名是否有效boolean result = signature.verifySignature();if (result) { String str1 =' 有效簽名'; JOptionPane.showMessageDialog(null,str1);} else { String str2 =' 無效簽名'; JOptionPane.showMessageDialog(null,str2);} }} }}

驗證結果:

Java實現添加、驗證PDF數字簽名的方法示例

擴展:Java 添加簽名域到PDF,可以參考這篇文章。

到此這篇關于Java實現添加、驗證PDF數字簽名的方法示例的文章就介紹到這了,更多相關Java PDF數字簽名內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 欧美日韩不卡视频一区二区三区 | 精品不卡一区中文字幕 | 欧美成a人片在线观看久 | 性做久久久久久久久25的美女 | 日本一级特黄高清ab片 | 欧美一区二区久久精品 | 国产精品400部自产在线观看 | 国产精品香蕉 | 日韩黄色在线视频 | 女同视频一区二区在线观看 | 91原创视频 | 永久免费看电视网站 | 婷婷激情久久 | 亚洲第一区视频 | 日本免费不卡视频一区二区三区 | 国产ar高清视频+视频 | 中文字幕美日韩在线高清 | 九九激情视频 | 亚洲黄色片一级 | 成年女人免费观看 | 五月色综合婷婷综合俺来也 | 在线欧美日韩 | 国产精品福利在线播放 | 免费a网 | 婷婷久月 | 久久99精品久久久久久园产越南 | 色综合久久六月婷婷中文字幕 | 欧美国产高清 | 麻豆精品视频入口 | 黄黄视频在线观看 | 亚洲精品一区二区三区人妖 | 国产福利不卡视频在免费播放 | 啪在线观看 | 日韩成人在线影院 | 国产乱码精品一区二区三 | 免费污污视频网站 | 香蕉视频在线观看视频 | 在线污污视污免费 | 午夜精品一区二区三区在线观看 | 色999| 国产不卡在线观看 |