PDF文档加密是一种用于爱护文件内容的性能。加密后的文档须要提供明码能力关上和查看。这一性能无效避免未经受权的拜访、复制和批改 PDF 文件。Free Spire.PDF for Java反对以编程的形式加密和解密PDF文档,且过程中不须要装置第三方软件。具体操作步骤和相干代码能够参考以下内容。
程序环境
在进行操作之前,请先将jar导入到Java程序中,请参考以下两种导入办法:
办法一:如果您应用的是 maven,能够通过增加以下代码到我的项目的 pom.xml 文件中,将 jar文件导入到应用程序中。
<repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url> </repository></repositories><dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.pdf.free</artifactId> <version>5.1.0</version> </dependency></dependencies>
办法二:如果您没有应用 maven,则能够从此链接下载Free Spire.PDF for Java,找到lib文件夹下的Spire.PDF.jar并进行解压;而后在IDEA中创立一个新我的项目,顺次点击“文件”(File),“我的项目构造”(Project Structure),“组件”(Modules),“依赖项”(Dependencies),再点击右方绿色“+”下的第一个选项“jar文件或门路”(JARs or Directories),找到解压后的Spire.PDF.jar 文件,点击确认,将其导入到我的项目中。
加密PDF文档
• 创立一个 PdfDocument 实例。
• 应用 PdfDocument.loadFromFile()办法加载PDF示例文档。
• 设置关上明码、权限明码、加密密钥大小和权限。
• 应用 PdfDocument.getSecurity().encrypt(java.lang.String openPassword, java.lang.String permissionPassword, java.util.EnumSet<PdfPermissionsFlags> permissions, PdfEncryptionKeySize keySize)办法来加密 PDF 文件。
• 应用 PdfDocument.saveToFile() 办法保留后果文档。
import java.util.EnumSet;import com.spire.pdf.PdfDocument;import com.spire.pdf.security.PdfEncryptionKeySize;import com.spire.pdf.security.PdfPermissionsFlags;public class EncryptPDF { public static void main(String[] args) { //创立PdfDocument实例 PdfDocument pdf = new PdfDocument(); //加载PDF示例文档 pdf.loadFromFile("sample.pdf"); //加密文档 PdfEncryptionKeySize keySize = PdfEncryptionKeySize.Key_128_Bit; String openPassword = "123456"; String permissionPassword = "abcdef"; EnumSet flags = EnumSet.of(PdfPermissionsFlags.Print, PdfPermissionsFlags.Fill_Fields); pdf.getSecurity().encrypt(openPassword, permissionPassword, flags, keySize); //保存文档 pdf.saveToFile("Encrypt.pdf"); pdf.close(); }}
解密PDF文档
• 创立一个PdfDocument 实例。
• 应用PdfDocument.loadFromFile(java.lang.String filename, java.lang.String password) 办法加载加密PDF文档。
• 通过应用PdfDocument.getSecurity().encrypt(java.lang.String openPassword, java.lang.String permissionPassword, java.util.EnumSet<PdfPermissionsFlags> permissions, PdfEncryptionKeySize keySize, java.lang.String originalPermissionPassword)办法来解密 PDF 文件。
• 应用PdfDocument.saveToFile()办法保留后果文件。
import com.spire.pdf.PdfDocument;import com.spire.pdf.security.PdfEncryptionKeySize;import com.spire.pdf.security.PdfPermissionsFlags;public class DecryptPDF { public static void main(String[] args) throws Exception { //创立PdfDocument实例 PdfDocument pdf = new PdfDocument(); //加载加密文档 pdf.loadFromFile("Encrypt.pdf", "123456"); //解密文档 pdf.getSecurity().encrypt("", "", PdfPermissionsFlags.getDefaultPermissions(), PdfEncryptionKeySize.Key_256_Bit, "abcdef"); //保存文档 pdf.saveToFile("Decrypt.pdf"); pdf.close(); }