前言
在日常辦公時,為了保護文檔不被他人篡改思劳,我們可為文檔設(shè)置打開口令,即加密妨猩。同時,因需要我們也可對加密文檔進行解密秽褒,以便能夠查看和編輯文檔壶硅。本文將通過Java程序來演示如何對PDF文檔進行加密和解密。
此次代碼示例用到的控件是Free Spire.PDF for Java销斟。該控件主要功能在于幫助開發(fā)人員在Java應(yīng)用程序中生成和操作PDF文檔庐椒,且運行環(huán)境無需安裝Adobe Acrobat。
Jar包安裝及導(dǎo)入
在運行代碼前蚂踊,需將Jar包導(dǎo)入IDEA中约谈。導(dǎo)入方式有兩種:其一,在官網(wǎng)上下載Free Spire.PDF for Java產(chǎn)品包,解壓后將lib文件夾下的Spire.Pdf.jar手動導(dǎo)入IDEA中棱诱;其二泼橘,在IDEA中創(chuàng)建一個Maven項目,然后在pom.xml文件中鍵入以下代碼迈勋,最后點擊“Import Changes”即可炬灭。
<repositories>
??????? <repository>
??????????? <id>com.e-iceblue</id>
??????????? <url>http://repo.e-iceblue.cn/repository/maven-public/</url>
??????? </repository>
??? </repositories>
<dependencies>
??? <dependency>
??????? <groupId>e-iceblue</groupId>
??????? <artifactId>spire.pdf.free</artifactId>
??????? <version>3.9.0</version>
??? </dependency>
</dependencies>
最終導(dǎo)入效果圖如下:
代碼示例
【示例1】加密PDF文檔
import java.util.EnumSet;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.security.PdfEncryptionKeySize;
import com.spire.pdf.security.PdfPermissionsFlags;
public class Encrypt {
public static void main(String[] args) {
//創(chuàng)建PdfDocument實例
PdfDocument doc =new PdfDocument();
//加載PDF文件
doc.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.pdf");
//對文件進行加密
PdfEncryptionKeySize keySize = PdfEncryptionKeySize.Key_128_Bit;//設(shè)置KeySize
String openPassword ="myppt123";//設(shè)置文檔打開密碼
String permissionPassword ="edit";
EnumSet flags = EnumSet.of(PdfPermissionsFlags.Print, PdfPermissionsFlags.Fill_Fields);
doc.getSecurity().encrypt(openPassword,permissionPassword,flags, keySize);
//保存文件
doc.saveToFile("output/Encrypt.pdf");
doc.close();
}
}
效果截圖:
【示例2】解密PDF文檔
import com.spire.pdf.PdfDocument;
import com.spire.pdf.security.PdfEncryptionKeySize;
import com.spire.pdf.security.PdfPermissionsFlags;
public class Decrypt {
public static void main(String[] args)throws Exception {
//創(chuàng)建PdfDocument實例
PdfDocument doc =new PdfDocument();
//加載PDF文件
doc.loadFromFile("C:\\Users\\Test1\\Desktop\\Encrypt.pdf","myppt123");
//對文件進行解密
doc.getSecurity().encrypt("","", PdfPermissionsFlags.getDefaultPermissions(),
PdfEncryptionKeySize.Key_256_Bit,"edit");
//保存文件
doc.saveToFile("output/Decrypt.pdf");
doc.close();
}
}
通過運行以上代碼,我們能夠成功地將設(shè)有打開口令的PDF文檔進行解密靡菇。
總結(jié)
Free Spire.PDF for Java除了可設(shè)置打開口令對文檔進行保護外重归,還支持為PDF文檔添加數(shù)字簽名、驗證數(shù)字簽名有效性及添加騎縫章等功能厦凤。其他功能將在今后的教程里一一講解鼻吮,可關(guān)注作者方便日后查找。對代碼或產(chǎn)品包導(dǎo)入有疑問较鼓,可評論或私信椎木。