在作業中,我們會將重要的檔案進行加密,并且設定用戶的訪問權限,其他外部人員均無法打開,只有獲取該權限的用戶才有資格打開檔案,此外,限制用戶的使用權限,極大程度上阻止了那些有意要篡改、拷貝其中內容的人,提高檔案的安全性,與此同時,檔案加密的另一大作用是為了防止丟失,因為可能存在員工出差或離職時,將檔案有意或無意的洗掉,造成檔案丟失的現象,從而導致公司的業務和形象受到一定影響,那么我們如何才能加密PDF檔案呢?加密檔案之后又該如何解密呢?下面篇文章就詳細介紹了如何以編程的方式,通過Java代碼加密或解密PDF檔案,
- 使用密碼加密 PDF 檔案
- 移除 PDF 檔案的密碼
代碼編譯環境:
IntelliJ IDEA 2019(jdk 1.8.0)
PDF Jar包:Free Spire.PDF for Java 5.1.0
引入jar包
匯入方法1:
手動引入,將Free Spire.PDF for Java下載到本地,解壓,找到lib檔案夾下的Spire.PDF.jar檔案,在IDEA中打開如下界面,將本地路徑中的jar檔案引入Java程式:
匯入方法2:如果您想通過 Maven安裝,則可以在 pom.xml 檔案中添加以下代碼匯入 JAR 檔案,
<repositories> <repository> <id>com.e-iceblue</id> <url>https://repo.e-iceblue.cn/repository/maven-public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.pdf.free</artifactId> <version>5.1.0</version> </dependency> </dependencies>
使用密碼加密 PDF 檔案
可以用于加密 PDF 檔案的密碼有兩種:打開密碼和權限密碼,打開密碼可以限制其他人打開 PDF 檔案,必須輸入密碼才能查看有打開密碼的 PDF 檔案,而權限密碼則可以限制對檔案進行操作,如列印、復制、評論等,當一個 PDF 檔案被同時用這兩種密碼加密時,可以使用其中任意一種來打開 PDF 檔案,
- 創建 PdfDocument 的物件,
- 使用 PdfDocument.loadFromFile() 方法載入 PDF 檔案,
- 設定打開密碼、權限密碼、密鑰大小以及權限,
- 使用 PdfDocument.getSecurity().encrypt(java.lang.String openPassword, java.lang.String permissionPassword, java.util.EnumSet<PdfPermissionsFlags> permissions, PdfEncryptionKeySize keySize) 方法加密檔案,
- 使用 PdfDocument.saveToFile() 方法保存 PDF 檔案,
完整代碼
Java
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("收購XXX公司專案.pdf"); //加密檔案 PdfEncryptionKeySize keySize = PdfEncryptionKeySize.Key_128_Bit; String openPassword = "password"; String permissionPassword = "permission"; EnumSet flags = EnumSet.of(PdfPermissionsFlags.Print, PdfPermissionsFlags.Fill_Fields); pdf.getSecurity().encrypt(openPassword, permissionPassword, flags, keySize); //保存檔案 pdf.saveToFile("加密.pdf"); pdf.close(); } }
效果圖
移除 PDF 檔案的密碼
如需解密 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) 方法將打開密碼和權限密碼設定為空,以解密檔案,
- 使用 PdfDocument.saveToFile() 方法保存 PDF 檔案,
完整代碼
Java
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) { //創建PdfDocument的物件 PdfDocument pdf = new PdfDocument(); //使用密碼載入加密的PDF檔案 pdf.loadFromFile("加密.pdf", "password"); //解密檔案 pdf.getSecurity().encrypt("", "", PdfPermissionsFlags.getDefaultPermissions(), PdfEncryptionKeySize.Key_256_Bit, "permission"); //保存檔案 pdf.saveToFile("解密.pdf"); pdf.close(); } }
效果圖
—本文完—
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/549970.html
標籤:其他
上一篇:在Django+Vue3+GraphQL的Blog例子代碼中引入Element-Plus UI Framework