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

本文簡要概述如何通過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中的簽名可實現相關功能,程式碼比較簡潔,操作邏輯易理解。