在上一章中,无涯教程已经了解了如何在PDF文档中插入图像。在本章中将讨论如何加密PDF文档。
您可以使用 StandardProtectionPolicy 和 AccessPermission类提供的方法对PDF文档进行加密。
AccessPermission 类用于通过为PDF文档分配访问权限来保护它。
StandardProtectionPolicy 类用于向文档添加基于密码的保护。
以下是加密现有PDF文档的步骤。
使用 PDDocument 类的静态方法 load()加载现有的PDF文档。该方法接受文件对象作为参数,因为这是一个静态方法,因此您可以使用类名调用它。
File file=new File("path of the document") PDDocument document=PDDocument.load(file);
实例化 AccessPermission 类,如下所示。
AccessPermission accessPermission=new AccessPermission();
通过传递所有者密码,用户密码和 AccessPermission 对象,化 StandardProtectionPolicy 类,如下所示。
StandardProtectionPolicy spp=new StandardProtectionPolicy("1234","1234",accessPermission);
如下所示,使用 setEncryptionKeyLength()方法设置加密密钥的长度。
链接:https://www.learnfk.comhttps://www.learnfk.com/pdfbox/pdfbox-encrypting-a-pdf-document.html
来源:LearnFk无涯教程网
spp.setEncryptionKeyLength(128);
使用StandardProtectionPolicy类的 setPermissions()方法设置权限。此方法接受 AccessPermission 对象作为参数。
spp.setPermissions(accessPermission);
您可以使用 PDDocument 类的 protect()方法保护文档,如下所示。将 StandardProtectionPolicy 对象作为参数传递给此方法。
document.protect(spp);
添加所需的内容后,使用 PDDocument 类的 save()方法保存PDF文档,如以下代码块所示。
document.save("Path");
最后,使用 PDDocument 类的 close()方法关闭文档,如下所示。
document.close();
假设无涯教程在路径C:/ PdfBox_Examples /中有一个名为sample.pdf的PDF文档,其空页面如下所示。
本示例演示如何加密上述PDF文档。在这里将加载名为 sample.pdf 的PDF文档并对其进行加密。将此代码保存在名为 EncriptingPDF.java。的文件中。
import java.io.File; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.encryption.AccessPermission; import org.apache.pdfbox.pdmodel.encryption.StandardProtectionPolicy; public class EncriptingPDF { public static void main(String args[]) throws Exception { //加载现有文档 File file = new File("C:/PdfBox_Examples/sample.pdf"); PDDocument document = PDDocument.load(file); //创建访问权限对象 AccessPermission ap = new AccessPermission(); //创建标准化的支持policy对象 StandardProtectionPolicy spp = new StandardProtectionPolicy("1234", "1234", ap); //设置加密密钥的长度 spp.setEncryptionKeyLength(128); //设置访问权限 spp.setPermissions(ap); //保护文件 document.protect(spp); System.out.println("Document encrypted"); //保存文档 document.save("C:/PdfBox_Examples/sample.pdf"); //关闭文件 document.close(); } }
使用以下命令从命令提示符处编译并执行保存的Java文件。
javac EncriptingPDF.java java EncriptingPDF
执行后,上述程序会加密显示以下消息的给定PDF文档。
Document encrypted
如果您尝试打开文档 sample.pdf ,则由于已加密,因此无法打开。而是,提示您键入密码以打开文档,如下所示。
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)