激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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
主站蜘蛛池模板: 国产精品1区,2区,3区 | 一色桃子av大全在线播放 | 欧美一级黄色免费看 | 九九精品视频观看 | 九九热精品视频在线 | 激情久久免费视频 | 999久久久国产999久久久 | 国产精品视频免费在线观看 | 一级做受毛片免费大片 | 九九热视频在线免费观看 | 毛片视频免费观看 | 黄色免费在线电影 | 综合精品视频 | 精品一区二区久久久 | 成人毛片在线免费观看 | 成人毛片网站 | 成人视屏在线观看 | 2021狠狠操| 男女无套免费视频 | 看一级大毛片 | 国产精品高潮视频 | 黄色网战入口 | 91精品国产日韩91久久久久久360 | 久久久一区二区精品 | 91精品观看91久久久久久国产 | 国产精品视频免费在线观看 | 免费黄色的视频 | 一区二区三区无码高清视频 | 国产成人高潮免费观看精品 | 一级一级一级毛片 | 久久久免费观看完整版 | 久啪视频 | 性看小视频 | gogo全球大胆高清人露出91 | 天天操天天看 | 久久不射电影网 | 天堂成人国产精品一区 | 日韩男人的天堂 | 欧美一级二级毛片视频 | 99视频在线观看视频 | 亚洲电影在线观看高清免费 |