日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java凭证加盖电子印章_源码分享:在pdf上加盖电子签章

發(fā)布時間:2024/1/1 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java凭证加盖电子印章_源码分享:在pdf上加盖电子签章 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

publicvoidsign(Stringsrc/

/需要簽章的pdf文件路徑 ,Stringdest/

/ 簽完章的pdf文件路徑 ,ImageDataimg/

/ 印章圖片 ,intpageNum/

/ 印在第幾頁 ,Rectanglerectangle/

/ 印章顯示的位置 ,Certificate[]chain/

/證書鏈 ,PrivateKeypk/

/簽名私鑰 ,StringdigestAlgorithm/

/摘要算法名稱,例如SHA-1 ,Stringprovider/

/ 密鑰算法提供者,可以為null ,PdfSigner.CryptoStandardsubfilter/

/數(shù)字簽名格式,itext有2種 ,Stringreason/

/簽名的原因,顯示在pdf簽名屬性中,隨便填 ,Stringlocation)/

/簽名的地點,顯示在pdf簽名屬性中,隨便填 throwsGeneralSecurityException,IOException{ /

/下邊的步驟都是固定的,照著寫就行了,沒啥要解釋的 PdfReaderreader=newPdfReader(src); PdfDocumentdocument=newPdfDocument(reader); document.setDefaultPageSize(PageSize.TABLOID); /

/目標文件輸出流 FileOutputStreamos=newFileOutputStream(dest); /

/創(chuàng)建簽章工具PdfSigner ,最后一個boolean參數(shù) /

/false的話,pdf文件只允許被簽名一次,多次簽名,最后一次有效 /

/true的話,pdf可以被追加簽名,驗簽工具可以識別出每次簽名之后文檔是否被修改 PdfReaderreader2=newPdfReader(src);/

/ PdfSigner stamper = new PdfSigner(reader2, os, true); StampingPropertiesstampingProperties=newStampingProperties(); stampingProperties.useAppendMode(); PdfSignerstamper=newPdfSigner(reader2,os,stampingProperties); /

/ 獲取數(shù)字簽章屬性對象,設(shè)定數(shù)字簽章的屬性 PdfSignatureAppearanceappearance=stamper.getSignatureAppearance(); appearance.setReason(reason); appearance.setLocation(location); /

/設(shè)置簽名的位置,頁碼,簽名域名稱,多次追加簽名的時候,簽名與名稱不能一樣 /

/簽名的位置,是圖章相對于pdf頁面的位置坐標,原點為pdf頁面左下角 /

/四個參數(shù)的分別是,圖章左下角x,圖章左下角y,圖章寬度,圖章高度 appearance.setPageNumber(pageNum); appearance.setPageRect(rectangle); /

/插入蓋章圖片 appearance.setSignatureGraphic(img); /

/設(shè)置圖章的顯示方式,如下選擇的是只顯示圖章(還有其他的模式,可以圖章和簽名描述一同顯示) appearance.setRenderingMode(PdfSignatureAppearance.RenderingMode.GRAPHIC); /

/ 這里的itext提供了2個用于簽名的接口,可以自己實現(xiàn),后邊著重說這個實現(xiàn) /

/ 摘要算法 IExternalDigestdigest=newBouncyCastleDigest(); /

/ 簽名算法 IExternalSignaturesignature=newPrivateKeySignature(pk,digestAlgorithm,BouncyCastleProvider.PROVIDER_NAME); /

/ 調(diào)用itext簽名方法完成pdf簽章 stamper.setCertificationLevel(1); stamper.signDetached(digest,signature,chain,null,null,null,0,PdfSigner.CryptoStandard.CADES); }

總結(jié)

以上是生活随笔為你收集整理的java凭证加盖电子印章_源码分享:在pdf上加盖电子签章的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。