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中的签名可实现相关功能,代码比较简洁,操作逻辑易理解。
Java 操作PPT数字签名(一):添加、检测、删除签名的更多相关文章
- java操作elasticsearch实现批量添加数据(bulk)
java操作elasticsearch实现批量添加主要使用了bulk 代码如下: //bulk批量操作(批量添加) @Test public void test7() throws IOExcepti ...
- java使用jdbc对sqlite 添加、删除、修改的操作
package com.jb.jubmis.Dao.DaoImpl; import java.io.File;import java.io.FileInputStream;import java.io ...
- java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)
插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版),没 想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和 ...
- coding++:java操作 FastDFS(上传 | 下载 | 删除)
开发工具 IDEAL2017 Springboot 1.5.21.RELEASE --------------------------------------------------------- ...
- JQuery实现对html结点的操作(创建,添加,删除)
效果图: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...
- JS DOM元素的操作(创建,添加,删除,和修改属性)
1.1 创建 DOM 元素以及相应的追加方式 1.1.1 创建:document.createElement('div'); 添加: fatherEle.appendChild(ele); appe ...
- Java 添加数字签名到Excel以及检测、删除签名
Excel中可添加数字签名以供文档所有者申明文档的所有权或有效性.文本以Java代码示例介绍如何在Excel文档中对数字签名功能进行相关操作,包括如何添加签名到Excel.检测Excel文档是否已签名 ...
- Java读取json文件并对json数据进行读取、添加、删除与修改操作
转载:http://blog.csdn.net/qing_yun/article/details/46865863#t0 1.介绍 开发过程中经常会遇到json数据的处理,而单独对json数据进行 ...
- Java 操作Word书签(一):添加、删除、读取书签
Word中,书签功能常用于查找.定位.标记特定字符或段落,对于篇幅较大的文档,此功能非常实用.下面,将介绍通过Java程序来添加及删除Word书签的方法.示例要点包括: 1. 添加书签 1.1 给指定 ...
随机推荐
- Ubuntu下跑通py-faster-rcnn、详解demo运作流程
在不同的服务器不同的机器上做过很多次实验,分别遇到各种不一样的错误并且跑通Py-Faster-RCNN,因此,在这里做一个流程的汇总: 一.下载文件: 首先,文件的下载可以有两种途径: 1.需要在官网 ...
- Fetch & POST
Fetch & POST fetch( `http://10.1.5.202/deploy/http/send/viewtree`, { method: "POST", m ...
- 如何使用 js 实现一个 Promise.all 方法 PromiseAll
如何使用 js 实现一个 Promise.all 方法 PromiseAll Promise.all PromiseAll https://developer.mozilla.org/en-US/do ...
- js & array remove one item ways
js & array remove one item ways // array remove one item ways let keys = [1,2,3,4,5,6,7]; let ke ...
- IM & WebSockets
IM & WebSockets WebSocket API https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API ht ...
- js 实现简单的parseInt和parseFloat
function myParseInt(str: string): number { let result = NaN; for (let i = 0; i < str.length; i++) ...
- 如何理解NGK的Layer2-侧链?
对于 NGK来说,Layer-2越来越重要,并成为共识.但是,"Layer-2" 是个不精确的标签.有些人说起 "Layer-2" 时,仅仅指的是 " ...
- 关于MacBook Air/Pro 外接显示器时,显示器黑屏无反应的解决方法,顺便求助M1芯片的mac 外接显示器如何开启Hidpi
显示器黑屏,无反应,频繁闪烁的原因 先说结论,直接换type-c转DP的显示器连接线吧,如果显示器不支持dp接口,那自求多福吧. 事情是这样的,m1版本的macbook air 刚发布就马上入手了一台 ...
- 微信小程序引入ECharts组件
首先打开ECharts网页 https://echarts.apache.org/zh/tutorial.html#%E5%9C%A8%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8 ...
- C语言:试探算法解决“八皇后”问题
#include <stdio.h> #define N 4 int solution[N], j, k, count, sols; int place(int row, int col) ...