一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java 給PDF簽名時添加可信時間戳的方法

Java 給PDF簽名時添加可信時間戳的方法

2021-10-18 10:39E-iceblue Java教程

這篇文章主要介紹了Java 給PDF簽名時添加可信時間戳,關于jar導入的問題,本文給大家帶來兩種方法,一種是手動導入另一種是maven配置導入,需要的朋友可以參考下

一、程序運行環境

  • 編譯環境:IntelliJ IDEA
  • 所需測試文件:PDF、.pfx數字證書及密鑰、PDF Jar包(Free Spire.PDF for Java)、簽名圖片(.png格式)
  • 可信時間戳服務器:URL地址

注:以下代碼中的所有測試文件路徑均為IDEA程序項目文件夾路徑,如C:UsersAdministratorIdeaProjectsCertificate_PDF est.pdf,文件路徑可自定義。

關于jar導入可參考如下2種方法:

1.手動導入:下載jar包到本地,解壓;在IDEA中,執行如下步驟導入:

Java 給PDF簽名時添加可信時間戳的方法

Java 給PDF簽名時添加可信時間戳的方法

Java 給PDF簽名時添加可信時間戳的方法

2. Maven配置導入。在pom.xml中配置如下內容下載導入:

<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.free</artifactId>
        <version>4.4.1</version>
    </dependency>
</dependencies>

二、程序測試代碼

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 TimeStamp {
    public static void main(String[] args) {
        //加載PDF文檔
        PdfDocument pdf = new PdfDocument();
        pdf.loadFromFile("test.pdf");

        //加載pfx證書,及證書秘鑰
        PdfCertificate cert = new PdfCertificate("pfx證書","密鑰");

        //添加數字簽名到指定頁面,并設置其位置和大小
        PdfSignature signature = new PdfSignature(pdf, pdf.getPages().get(2), cert, "Mia");
        Rectangle2D rect = new Rectangle2D.Float();
        rect.setFrame(new Point2D.Float((float) pdf.getPages().get(0).getActualSize().getWidth() - 340, (float) pdf.getPages().get(0).getActualSize().getHeight() - 230), new Dimension(280, 120));
        signature.setBounds(rect);

        //設置簽名為圖片加文本模式
        signature.setGraphicMode(GraphicMode.Sign_Image_And_Sign_Detail);

        //設置簽名的內容
        signature.setNameLabel("簽字人:");
        signature.setName("Manager");
        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);

        //配置時間戳服務器
        String timestampeServerUrl = "時間戳服務器地址";
        signature.configureTimestamp(timestampeServerUrl);

        //保存文檔
        pdf.saveToFile("SignatureWithTimeStamp.pdf");
        pdf.close();
    }
}

時間戳效果如圖:

Java 給PDF簽名時添加可信時間戳的方法

相關閱讀推薦:

  • Java 添加、驗證PDF 數字簽名

到此這篇關于Java 給PDF簽名時添加可信時間戳的文章就介紹到這了,更多相關Java添加可信時間戳內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/Yesi/p/15030057.html

延伸 · 閱讀

精彩推薦
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下...

    Java教程網2942020-09-17
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩中求8032021-07-12
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發現了對于集合操作轉換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關于Java8中S...

    阿杜7472021-02-04
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數據的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經有好久沒有升過級了。升級完畢重啟之后,突然發現好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
主站蜘蛛池模板: japanhd粗暴video | xvideoscom极品肌肉警察 | 精品亚洲国产一区二区 | 日本最大的黄色网站 | 十大免费批日的软件 | 亚洲午夜性春猛交xxxx | 欧美成狂野欧美在线观看 | h日本漫画全彩在线观看 | 久久国产精品福利影集 | 日韩一区二区三 | 欧美一区二区三区四区五区六区 | 日本艳鉧动漫1~6完整版在 | 国产精品久久久久影视不卡 | 好男人在线观看免费高清2019韩剧 | 嫩草影院永久在线一二三四 | 国内精品国语自产拍在线观看55 | 午夜dj影院在线观看完整版 | 紧身裙女教师波多野结衣 | 日韩精品首页 | 欧美一级在线播放 | 亚洲咪咪 | 无码任你躁久久久久久久 | darkside动漫在线观看 | 成人综合婷婷国产精品久久免费 | 国产香蕉久久 | 国产a一级 | 欧美性高清另类videosex死尸 | 肠交女王magnet| 四虎884aa永久播放地址http | 午夜电影三级还珠格格 | 短篇小说肉 | 美女的让男人桶爽30分钟的 | 国产精品久久国产精品99 | 暖暖日本在线观看免费 | 我与么公激情性完整视频 | 国产午夜精品福利 | 国产一区二区三区高清视频 | 美女被吸乳老师羞羞漫画 | hd性欧美俱乐部中文 | a国产在线 | 亚洲第一综合网 |