中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java怎么給PDF簽名時添加可信時間戳

發布時間:2021-07-21 13:45:49 來源:億速云 閱讀:205 作者:chen 欄目:開發技術

這篇文章主要講解了“Java怎么給PDF簽名時添加可信時間戳”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java怎么給PDF簽名時添加可信時間戳”吧!

一、程序運行環境

  • 編譯環境:IntelliJ IDEA

  • 所需測試文件:PDF、.pfx數字證書及密鑰、PDF Jar包(Free Spire.PDF for Java)、簽名圖片(.png格式)

  • 可信時間戳服務器:URL地址

注:以下代碼中的所有測試文件路徑均為IDEA程序項目文件夾路徑,如C:\Users\Administrator\IdeaProjects\Certificate_PDF\test.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簽名時添加可信時間戳這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

伽师县| 老河口市| 锡林浩特市| 秭归县| 宿州市| 曲阜市| 丰都县| 北安市| 正定县| 嵩明县| 鄂伦春自治旗| 东海县| 清涧县| 来安县| 汶川县| 嘉定区| 禹州市| 兴海县| 军事| 高淳县| 平阳县| 通河县| 宜章县| 筠连县| 永福县| 固始县| 依安县| 东丽区| 江孜县| 阆中市| 黎川县| 海林市| 唐山市| 西平县| 房山区| 那坡县| 宝山区| 大方县| 三河市| 凤凰县| 广河县|