PDF處理控件Aspose.PDF功能演示:使用Java加密和解密PDF文件
在各種情況下,在利益相關(guān)者之間共享之前,PDF文檔都是經(jīng)過(guò)加密的。加密使文檔免受未經(jīng)授權(quán)的訪問(wèn)和內(nèi)容篡改的影響。有兩種保護(hù)PDF文檔安全的流行方法-用密碼加密PDF或限制用戶的訪問(wèn)權(quán)限,例如打印,編輯,復(fù)制等。
本文演示了如何使用Java加密或解密PDF文檔。此外,還將學(xué)習(xí)如何限制PDF文檔中用戶的權(quán)限。
- 使用Java加密PDF文件
- 使用Java解密PDF文件
- 使用Java更改PDF中的安全權(quán)限
目前,Java版Aspose.PDF升級(jí)到v20.10版,添加簽名,而不考慮pdf頁(yè)面的旋轉(zhuǎn),修復(fù)XPS轉(zhuǎn)換為PDF錯(cuò)誤等諸多bug問(wèn)題,感興趣的朋友可點(diǎn)擊下方按鈕下載最新版。
點(diǎn)擊下載最新版Aspose.PDF for Java
使用Java加密PDF文件
PDF文檔的加密要求您設(shè)置一個(gè)密碼,該密碼將用于打開(kāi)和訪問(wèn)該文檔。除此之外,您可以選擇以下加密算法之一。
- 帶40位密鑰的RC4
- 帶128位密鑰的RC4
- 帶有128位密鑰的AES
- 帶有256位密鑰的AES
以下是使用Aspose.PDF for Java加密PDF文檔的步驟。
- 使用Document類加載PDF文檔。
- 使用Document.encrypt(“ user_password”,“ owner_password”,0,CryptoAlgorithm)方法對(duì)PDF進(jìn)行加密。
- 使用Document.save(string)方法保存加密的PDF 。
以下代碼示例顯示了如何使用Java加密PDF文檔。
// open document Document document = new Document("input.pdf"); // encrypt PDF document.encrypt("user", "owner", 0, CryptoAlgorithm.AESx256); // save updated PDF document.save("Encrypted_output.pdf");
當(dāng)打開(kāi)加密的PDF時(shí),將出現(xiàn)以下對(duì)話框。
使用Java解密PDF文件
加密的PDF文檔的解密需要用戶或所有者的密碼。以下是使用Aspose.PDF for Java解密PDF文檔的步驟。
- 通過(guò)在構(gòu)造函數(shù)中指定密碼,使用Document類加載加密的PDF 。
- 調(diào)用 Document.decrypt() 方法解密PDF。
- 使用Document.save(string)方法保存解密的PDF文檔。
以下代碼示例顯示了如何使用Java解密加密的PDF。
// open document Document document = new Document("input.pdf", "password"); // decrypt PDF document.decrypt(); // save updated PDF document.save("output.pdf");
使用Java更改PDF中的安全權(quán)限
可以在加密PDF文檔時(shí)限制用戶的訪問(wèn)權(quán)限以執(zhí)行不同的操作。以下是可以設(shè)置的權(quán)限。
- 打印文檔 –允許打印文檔。
- 修改內(nèi)容 –允許修改內(nèi)容。
- 提取內(nèi)容 –允許從文檔中復(fù)制內(nèi)容。
- 修改文本注釋 –允許添加或更新文本注釋。
- 填寫(xiě)表格 –允許填寫(xiě)交互式表格字段。
- 提取具有殘疾的內(nèi)容 –允許提取文本和圖形(適用于殘疾用戶)。
- 組裝文檔 –允許插入,旋轉(zhuǎn)或刪除頁(yè)面以及創(chuàng)建書(shū)簽或縮略圖。
- 打印質(zhì)量 –允許高分辨率打印文檔。
以下是設(shè)置或修改PDF文檔中的權(quán)限的步驟。
- 使用Document類加載PDF 。
- 使用DocumentPrivilege類設(shè)置權(quán)限。
- 加密PDF并將其保存,就像前面的示例一樣。
以下代碼示例顯示了如何使用Java修改PDF文檔中的權(quán)限。
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文件中的權(quán)限。
還想要更多嗎?您可以點(diǎn)擊閱讀【2020 · Aspose最新資源整合】,查找需要的教程資源。如果您有任何疑問(wèn)或需求,請(qǐng)隨時(shí)加入Aspose技術(shù)交流群(642018183),我們很高興為您提供查詢和咨詢。