Java 操作PPT數字簽名(一):新增、檢測、刪除簽名

iceblue發表於2021-03-17

本文簡要概述如何通過Java程式來處理PPT中的數字簽名,文章主要分三個部分來介紹,即數字簽名的新增、驗證以及刪除。

基本操作思路:

1. 新增簽名:【載入PPT文件】→【新增簽名】→【儲存文件】

2. 檢測簽名:【載入PPT文件】→【判定是否簽名】→【輸出判定結果】

3. 刪除簽名:【載入PPT文件】→【判定是否簽名】→【刪除簽名】→【儲存文件】

Jar包引入:使用Spire.Presentation.jar 4.3.2版本,這裡引入的是試用版的jar,程式中使用了臨時授權檔案,所以在結果文件中沒有水印資訊(經過測試,該功能在免費版中暫不支援,所以採用試用版)。Jar檔案引入,可下載jar包,解壓,手動將lib資料夾下的jar檔案引入程式;或通過Maven倉庫路徑來引入(需配置pom.xml檔案)。

 

Java程式碼操作如下

1.新增簽名

import com.spire.presentation.*;
import java.util.Date;

public class AddSignature {
    public static void main(String[] args)throws Exception {
        //載入PPT文件
        Presentation ppt = new Presentation();
        ppt.loadFromFile("test.pptx");

        //新增數字簽名
        ppt.addDigitalSignature("cer.pfx", "123654yes!","The Author is Mia", new Date());

        //儲存文件
        ppt.saveToFile("AddSignature.pptx",FileFormat.PPTX_2013);
        ppt.dispose();
    }
}

 

 

2. 判斷文件是否簽名

import com.spire.presentation.*;

public class VerifySignature {

    public static void main(String[] args) throws Exception{

        //載入用於測試的PPT文件
        Presentation ppt = new Presentation();
        ppt.loadFromFile("AddSignature.pptx");//已簽名文件
        //ppt.loadFromFile("test.pptx");//未簽名文件

        //判定文件是否簽名
        boolean digitalSigned = ppt.isDigitallySigned();
        if (digitalSigned == true)
        {
            System.out.println("已簽名!");
        }
        else if(digitalSigned == false)
        {
            System.out.println("未簽名,可新增簽名。");
        }
    }
}

使用已簽名檔案測試時,得出如下判定結果:

 

 

使用未簽名文件測試時,得出如下驗證結果:

 

 

通過以上方法,可確認該方法有效。

 

3.刪除簽名

import com.spire.presentation.*;
public class RemoveSignature {
    public static void main(String[] args) throws Exception {
        //載入PPT文件
        Presentation ppt = new Presentation();
        ppt.loadFromFile("AddSignature.pptx");

        //判定文件是否簽名
        boolean digitalSigned = ppt.isDigitallySigned();
        if (digitalSigned == true)
        {
            ppt.removeAllDigitalSignatures();//移除簽名
        }

        //儲存文件
        ppt.saveToFile("RemoveSignature.pptx",FileFormat.PPTX_2013);
        ppt.dispose();
    }
}

執行程式後,最後儲存的檔案不再有數字簽名。

 

綜上內容,通過該jar來處理PPT中的簽名可實現相關功能,程式碼比較簡潔,操作邏輯易理解。

 

相關文章