网站首页 > 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 到图片的转换
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- 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)
本文暂时没有评论,来添加一个吧(●'◡'●)