本文简要概述如何通过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数字签名(一):添加、检测、删除签名的更多相关文章

  1. java操作elasticsearch实现批量添加数据(bulk)

    java操作elasticsearch实现批量添加主要使用了bulk 代码如下: //bulk批量操作(批量添加) @Test public void test7() throws IOExcepti ...

  2. java使用jdbc对sqlite 添加、删除、修改的操作

    package com.jb.jubmis.Dao.DaoImpl; import java.io.File;import java.io.FileInputStream;import java.io ...

  3. java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)

    插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版),没 想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和 ...

  4. coding++:java操作 FastDFS(上传 | 下载 | 删除)

    开发工具  IDEAL2017  Springboot 1.5.21.RELEASE --------------------------------------------------------- ...

  5. JQuery实现对html结点的操作(创建,添加,删除)

    效果图: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...

  6. JS DOM元素的操作(创建,添加,删除,和修改属性)

    1.1 创建 DOM 元素以及相应的追加方式 1.1.1  创建:document.createElement('div'); 添加: fatherEle.appendChild(ele); appe ...

  7. Java 添加数字签名到Excel以及检测、删除签名

    Excel中可添加数字签名以供文档所有者申明文档的所有权或有效性.文本以Java代码示例介绍如何在Excel文档中对数字签名功能进行相关操作,包括如何添加签名到Excel.检测Excel文档是否已签名 ...

  8. Java读取json文件并对json数据进行读取、添加、删除与修改操作

    转载:http://blog.csdn.net/qing_yun/article/details/46865863#t0   1.介绍 开发过程中经常会遇到json数据的处理,而单独对json数据进行 ...

  9. Java 操作Word书签(一):添加、删除、读取书签

    Word中,书签功能常用于查找.定位.标记特定字符或段落,对于篇幅较大的文档,此功能非常实用.下面,将介绍通过Java程序来添加及删除Word书签的方法.示例要点包括: 1. 添加书签 1.1 给指定 ...

随机推荐

  1. In_array()函数弱比较

    0x01 定义 (PHP 4, PHP 5, PHP 7) in_array - 检查数组中是否存在某个值 说明 in_array ( mixed $needle , array $haystack ...

  2. git branch All In One

    git branch All In One Git Branch Management https://git-scm.com/book/en/v2/Git-Branching-Branch-Mana ...

  3. vue 二级子路由跳转不了 bug

    vue 二级子路由跳转不了 bug @click.prevent 阻止原生事件的冒泡 <li class="tools-hover-box-list-item" v-for= ...

  4. Flow All In One

    Flow All In One Flow is a static type checker for JavaScript https://github.com/facebook/flow https: ...

  5. ES6 Map vs ES5 Object

    ES6 Map vs ES5 Object Map vs Object https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referenc ...

  6. 图解 HTTP, 图解 HTTPS, 图解 HTTP/2, 图解 HTTP/3, 图解 QUIC

    图解 HTTP, 图解 HTTPS, 图解 HTTP/2, 图解 HTTP/3, 图解 QUIC HTTP https://en.wikipedia.org/wiki/Hypertext_Transf ...

  7. js var & let & const All In One

    js var & let & const All In One js var & let & const 区别对比 var let const 区别 是否存在 hois ...

  8. record terminal sessions

    record terminal sessions asciinema https://asciinema.org/ # install $ brew install asciinema # Start ...

  9. Next.js & SSR & CSR & SG

    Next.js & SSR & CSR & SG getStaticPaths, getStaticProps, getServerSideProps getStaticPro ...

  10. Android Studio 4.x

    Android Studio 4.x https://developer.android.com/studio https://d.android.com/r/studio-ui/whats-new- ...