网站首页 > java教程 正文
前言
在日常办公时,为了保护文档不被他人篡改,我们可为文档设置打开口令,即加密。同时,因需要我们也可对加密文档进行解密,以便能够查看和编辑文档。本文将通过Java程序来演示如何对PDF文档进行加密和解密。
此次代码示例用到的控件是Free Spire.PDF for Java。该控件主要功能在于帮助开发人员在Java应用程序中生成和操作PDF文档,且运行环境无需安装Adobe Acrobat。
Jar包安装及导入
在运行代码前,需将Jar包导入IDEA中。导入方式有两种:其 一,在E-iceblue中文官网上下载Free Spire.PDF for Java产品包,解压后将lib文件夹下的Spire.Pdf.jar手动导入IDEA中;其 二,在IDEA中创建一个Maven项目,然后在pom.xml文件中键入以下代码,最后点击“Import Changes”即可。
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf.free</artifactId>
<version>3.9.0</version>
</dependency>
</dependencies>
最终导入效果图如下:
代码示例
【示例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:\\Users\\Test1\\Desktop\\Sample.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:\\Users\\Test1\\Desktop\\Encrypt.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文档添加数字签名、验证数字签名有效性及添加骑缝章等功能。其他功能将在今后的教程里一一讲解,可关注作者方便日后查找。对代码或产品包导入有疑问,可评论或私信。
猜你喜欢
- 2024-10-27 源码分享:在pdf上加盖电子签章(pdf文件上加盖电子印章)
- 2024-10-27 从腾讯T3-3大佬手上获得的Java架构进阶PDF文档,图文并茂,真香
- 2024-10-27 数据如何转成html表格、pdf、xmind文件格式下载?
- 2024-10-27 Java 给PDF文档设置有效时间(java word pdf)
- 2024-10-27 Spire.PDF for Java 8.9.1 增强了 PDF 到 Excel 和 PDFA3A 的转换
- 2024-10-27 Java | 调用打印机打印PDF文件(java调用打印机设备进行打印)
- 2024-10-27 「更新指南」Aspose.PDF for Java v19.5全新上线 | 附下载
- 2024-10-27 Java添加条形码到PDF表格(java条码打印)
- 2024-10-27 Java pdf下载优化:Java图片压缩(java对图片进行压缩)
- 2024-10-27 Spire.PDF for Java 8.10.1 增强了 PDF 到图片的转换
你 发表评论:
欢迎- 05-16SpringBoot整合Redis实现常用功能
- 05-16基于Redis实现简单的延时消息队列
- 05-16安装Redis
- 05-16Spring系列之Redis的两种集成方式
- 05-16Django连接Redis集群问题排查思路和总结
- 05-16只需5分钟,完成Redis所有命令操作~
- 05-16熟练使用 Redis 的 5 大数据结构:Java 实战教程
- 05-16Redis 常见业务场景及实例(Java)
- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)