本文為您提供分步指南和代碼示例,以在 Java 中以編程方式加密和解密 PDF 文件。
在各種情況下,PDF 文檔在利益相關者之間共享之前會被加密。加密使文檔免受未經授權的訪問和內容篡改。有幾種流行的保護 PDF 文檔的方法 - 使用密碼加密 PDF 或限制用戶的訪問權限,例如打印、編輯、複製等。本文演示瞭如何使用 Java 加密或解密 PDF。此外,您還將了解如何在 PDF 文檔中限制用戶的權限。
用於加密或解密 PDF 的 Java API - 免費下載
Aspose.PDF for Java 是一個功能豐富的 PDF 操作 API,可讓您無縫處理 PDF 加密和解密。此外,它還允許您以編程方式修改用戶在 PDF 文檔中的權限。您可以免費 下載 API 或使用以下 Maven 配置安裝它。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>20.9</version>
<classifier>jdk17</classifier>
</dependency>
用 Java 加密 PDF 文件
PDF 文檔的加密要求您設置將用於打開和訪問文檔的密碼。除此之外,您還可以選擇以下加密算法之一用於加密。
以下是用 Java 加密 PDF 文件的步驟。
- 使用 Document 類加載 PDF 文檔。
- 使用 Document.encrypt(“userpassword”, “ownerpassword”, 0, CryptoAlgorithm) 方法加密 PDF。
- 使用 Document.save(string) 方法保存加密的 PDF。
以下代碼示例顯示瞭如何使用 Java 加密 PDF 文檔。
// 完整的示例和數據文件,請訪問 https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// 打開文件
Document document = new Document("input.pdf");
// 加密PDF
document.encrypt("user", "owner", 0, CryptoAlgorithm.AESx256);
// 保存更新的 PDF
document.save("Encrypted_output.pdf");
打開加密的 PDF 時會出現以下對話框。
用 Java 解密 PDF 文件
加密 PDF 文檔的解密需要用戶或所有者的密碼。以下是用 Java 解密 PDF 文件的步驟。
- 通過在構造函數中指定密碼,使用 Document 類加載加密的 PDF。
- 調用 Document.decrypt() 方法解密 PDF。
- 使用 Document.save(string) 方法保存解密的 PDF 文檔。
以下代碼示例展示瞭如何使用 Java 解密加密的 PDF。
// 完整的示例和數據文件,請訪問 https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// 打開文件
Document document = new Document("input.pdf", "password");
// 解密PDF
document.decrypt();
// 保存更新的 PDF
document.save("output.pdf");
使用 Java 更改 PDF 中的安全權限
您還可以限制用戶在加密 PDF 文檔時執行不同操作的權限。以下是您可以設置的權限。
- 打印文檔 – 允許打印文檔。
- 修改內容 – 允許修改內容。
- 提取內容 - 允許從文檔中復制內容。
- 修改文本註釋 - 允許添加或更新文本註釋。
- 填寫表格 – 允許填寫交互式表格字段。
- Extract Content with Disabilities – 允許提取文本和圖形(針對殘障用戶)。
- 組合文檔 – 允許插入、旋轉或刪除頁面以及創建書籤或縮略圖。
- 打印質量 – 允許高分辨率打印文檔。
以下是在 PDF 文檔中設置或修改權限的步驟。
- 使用 Document 類加載 PDF。
- 使用 DocumentPrivilege 類設置權限。
- 加密 PDF 並保存它,就像您在前面的示例中所做的那樣。
以下代碼示例顯示瞭如何使用 Java 修改 PDF 文檔中的權限。
// 完整的示例和數據文件,請訪問 https://github.com/aspose-pdf/Aspose.Pdf-for-Java
Document document = new Document("inputFile.pdf");
try /* JAVA: was using */
{
DocumentPrivilege documentPrivilege = DocumentPrivilege.getForbidAll();
documentPrivilege.setAllowScreenReaders(true);
documentPrivilege.setAllowPrint(true);
document.encrypt("user", "owner", documentPrivilege, CryptoAlgorithm.AESx128, false);
document.save("outputFile.pdf");
} finally {
if (document != null)
document.dispose();
}
以下是加密 PDF 文件中的權限。
結論
在本文中,您了解瞭如何使用 Java 加密或解密 PDF 文件。此外,您還了解瞭如何在 Java 中以編程方式修改 PDF 文檔中的用戶權限。您可以使用 文檔 探索和了解有關 Java PDF API 的更多信息。