前言

在日常办公时,为了保护文档不被他人篡改,我们可为文档设置打开口令,即加密。同时,因需要我们也可对加密文档进行解密,以便能够查看和编辑文档。本文将通过Java程序来演示如何对PDF文档进行加密和解密。

此次代码示例用到的控件是Free Spire.PDF for Java。该控件主要功能在于帮助开发人员在Java应用程序中生成和操作PDF文档,且运行环境无需安装Adobe Acrobat。

Jar包安装及导入

在运行代码前,需将Jar包导入IDEA中。导入方式有两种:其 一,在官网上下载Free Spire.PDF for Java产品包,解压后将lib文件夹下的Spire.Pdf.jar手动导入IDEA中;其 二,在IDEA中创建一个Maven项目,然后在pom.xml文件中键入以下代码,最后点击“Import Changes”即可。

com.e-iceblue

http://repo.e-iceblue.cn/repository/maven-public/

e-iceblue

spire.pdf.free

3.9.0

最终导入效果图如下:

代码示例

【示例1】加密PDF文档import java.util.EnumSet;

import com.spire.pdf.PdfDocument;

import com.spire.pdf.security.PdfEncryptionKeySize;

import com.spire.pdf.security.PdfPermissionsFlags;

public class Encrypt {

public static void main(String[] args) {

//创建PdfDocument实例

PdfDocument doc = new PdfDocument();

//加载PDF文件

doc.loadFromFile("C:UsersTest1DesktopSample.pdf");

//对文件进行加密

PdfEncryptionKeySize keySize = PdfEncryptionKeySize.Key_128_Bit;//设置KeySize

String openPassword = "myppt123";//设置文档打开密码

String permissionPassword = "edit";

EnumSet flags = EnumSet.of(PdfPermissionsFlags.Print, PdfPermissionsFlags.Fill_Fields);

doc.getSecurity().encrypt(openPassword,permissionPassword,flags, keySize);

//保存文件

doc.saveToFile("output/Encrypt.pdf");

doc.close();

}

}

效果截图:

【示例2】解密PDF文档import com.spire.pdf.PdfDocument;

import com.spire.pdf.security.PdfEncryptionKeySize;

import com.spire.pdf.security.PdfPermissionsFlags;

public class Decrypt {

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

//创建PdfDocument实例

PdfDocument doc = new PdfDocument();

//加载PDF文件

doc.loadFromFile("C:UsersTest1DesktopEncrypt.pdf", "myppt123");

//对文件进行解密

doc.getSecurity().encrypt("", "", PdfPermissionsFlags.getDefaultPermissions(),

PdfEncryptionKeySize.Key_256_Bit, "edit");

//保存文件

doc.saveToFile("output/Decrypt.pdf");

doc.close();

}

}

通过运行以上代码,我们能够成功地将设有打开口令的PDF文档进行解密。

总结

Free Spire.PDF for Java除了可设置打开口令对文档进行保护外,还支持为PDF文档添加数字签名、验证数字签名有效性及添加骑缝章等功能。其他功能将在今后的教程里一一讲解,可关注作者方便日后查找。对代码或产品包导入有疑问,可评论或私信。

java加密解密 pdf_Java 加密和解密PDF文档相关推荐

  1. java html 生成 pdf_Java实现HTML代码生成PDF文档

    1.IText实现html2pdf,速度快,纠错能力差,支持中文(要求HTML使用unicode编码),但中支持一种中文字体,开源. 2.Flying Sauser实现html2pdf,纠错能力差,支 ...

  2. java根据pdf模板生成pdf_Java 复制、压缩PDF文档

    在日常办公中,掌握操作PDF文档的能力尤为重要.在前文中我使用Java程序来演示过如何合并和拆分PDF文档.本文将介绍如何复制和压缩文档.通常复制文档有两种形式,一种是跨文档复制,即将一个文档复制到另 ...

  3. Java使用PDFBox开发包实现对PDF文档内容编辑与保存

    pdfbox开发包下载地址:http://pdfbox.apache.org/ 程序实现了PDF文档的创建,读入,与修改PDF内容并保存. 可能有个前提,PDF文档不是加密的,如果加密怎么办,我没研究 ...

  4. 加载pdf_Java 插入附件到PDF文档

    在文档中插入附件,可以起到与源文档配套使用的目的,以一种更简便的方式对文档起到补充说明的作用.下面将介绍通过Java编程插入附件到PDF文档中的方法.这里插入的文档可以是常见的文档类型,如Word.E ...

  5. java实现从url路径中下载pdf文档到本地

    import java.io.*; import java.net.*;public class DownloadPdf {/*** 从网络Url中下载文件* @param urlStr pdf网页的 ...

  6. java 加密word_Java 加密和解密PDF文档

    前言 在日常办公时,为了保护文档不被他人篡改,我们可为文档设置打开口令,即加密.同时,因需要我们也可对加密文档进行解密,以便能够查看和编辑文档.本文将通过Java程序来演示如何对PDF文档进行加密和解 ...

  7. pdf加密 java_PDFBox加密PDF文档

    本篇文章帮大家学习PDFBox加密PDF文档,包含了PDFBox加密PDF文档使用方法.操作技巧.实例演示和注意事项,有一定的学习价值,大家可以用来参考. 在前一章中,我们已经看到了如何在PDF文档中 ...

  8. Java 设置PDF文档过期时间(有效时间)

    有些文档具有一定时效性,需在规定时间段内才可阅读查看,针对此类文档,需要设置文档的过期日期.时间等.下面以Java示例演示为例如何给PDF文档设置过期时间.需使用PDF类库, Free Spire.P ...

  9. 【教程】如何使用Java生成PDF文档?

    在如今数字化时代,越来越多的人使用PDF文档进行信息传递和共享.而使用Java生成PDF文档也成为了一个非常重要的技能,因为Java作为一种通用的编程语言,可以在不同的操作系统和平台上运行.下面,我们 ...

最新文章

  1. java和c++的区别大吗_安徽成人高考和自考区别大吗?为什么推荐选成人高考?
  2. 学生查询成绩登录2021高考查分,2021学情达成绩查询登录app
  3. 查询除了一列意外_想让你的查询语句变快吗?
  4. C#实现清理系统内存
  5. python-字典数据类型-0222
  6. mybais 之parameterType =list
  7. PHP获取随机字符串的两种方法
  8. @Bean和@Componet区别
  9. 用户'MYCOMPUTER\ASPNET' 登录失败”的解决方法
  10. HexEdit Linux下命令集
  11. 转载:Latex——在线快速生成表格代码
  12. 2018铁三测评题write以及一些想送给你们的话
  13. C++五子棋算法Ai 简单的电脑智能博弈
  14. 2014 ACM-ICPC 亚洲地区赛 西安站小结
  15. FreeRTOS-消息队列详解
  16. 用寄存器HAL库完成LED流水灯程序以及通过MDK5模拟示波器观察波形
  17. SX126x-数字接口SPI和控制功能
  18. MAC OS 上好用的文本编辑器除了Sublime Text和BBEdit还有这些好用的推荐一下。
  19. windows系统安装jira
  20. Unity 播放声音

热门文章

  1. java显示图片缩略图_java中生成图片的缩略图
  2. 什么是数据描述统计分析指标?
  3. BDSN数据存储服务节点激励通证TYB将于6月21日正式上线
  4. 计算机教育属于什么教育学类,应用电子技术教育专业属于什么门类
  5. element-ui 表格多选框 按条件禁用部分选项
  6. 蓝牙4.0 BLE协议结构图详解
  7. finally块的正确使用
  8. 【poj1013】 Counterfeit Dollar
  9. C语言数据的输入与输出
  10. 当局者迷旁观者清红警游戏反杀局案例分析