在日常工作中,人們通常通過加密PDF文檔的方式來保護PDF文檔。不管是公司還是個人,使用PDF加密術來設置一些權限是必不可少的。為了使PDF文檔既可讀又不能被未授權的用戶所更改,一份PDF文檔往往需要兩個密碼:所有者密碼和用戶密碼。本文我將給大家分享如何使用一個免費版PDF組件—Free Spire.PDF,以C#/VB.NET編程的方式來快速地加密PDF文檔。
這個免費版的PDF組件是由E-iceblue公司開發的,它可以通過設置所有者密碼和用戶密碼來加密PDF文檔。所有者密碼可以完全訪問PDF文檔,例如重置密碼和權限;用戶密碼雖然可以允許用戶打開對應的PDF文檔,但也會受制於所有者設置的一些權限。
在加密方案中,命名空間Spire.PDFDocument.Security下的PDFSecurity類的實例對象用來設置所有者密碼和用戶密碼。
如果您對該組件感興趣,可以從官網下載,組件下載安裝后,再加載您的PDF文檔,然后就可以保護它了。
接下來我將介紹如何以C#/VB.NET編程的方式來加密PDF文檔:
步驟1:新建一個PDF文檔對象(因為我沒有現有的PDF文檔,所以就新建了一個)
[C#] PdfDocument doc = new PdfDocument();
步驟2:通過“Spire.Pdf.Security.PdfEncryptionKeySize”的枚舉值來設置密鑰長度。密鑰長度有3種可用的類型:Key128Bit, Key256Bit 和 Key40Bit,您可以使用其中的任意一種。
[C#]
doc.Security.KeySize = PdfEncryptionKeySize.Key256Bit;
步驟3:通過設置所有者密碼和用戶密碼來加密PDF文檔。注意:您所設置的密鑰長度不能超過可用的密鑰長度。
[C#] doc.Security.OwnerPassword = "e-iceblue"; doc.Security.UserPassword = "pdfcomponent";
步驟4:指定用戶密碼的訪問權限。在此方案中,有9種可用的權限,請查看下圖:

[C#]
doc.Security.Permissions = PdfPermissionsFlags.Print | PdfPermissionsFlags.CopyContent;
步驟5:保存文檔
[C#] doc.SaveToFile("result.pdf",FileFormat.PDF);
項目運行后,當你打開這個加密的PDF文檔時就需要輸入密碼了。請看下面的效果截圖:

C#完整代碼:
using Spire.Pdf; using Spire.Pdf.Security; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace __encryption { class Program { static void Main(string[] args) { PdfDocument doc = new PdfDocument(); doc.Security.KeySize = PdfEncryptionKeySize.Key256Bit; doc.Security.OwnerPassword = "e-iceblue"; doc.Security.UserPassword = "pdfcomponent"; doc.Security.Permissions = PdfPermissionsFlags.Print | PdfPermissionsFlags.CopyContent; doc.SaveToFile("result.pdf", FileFormat.PDF); } } }
VB.NET完整代碼:
Imports Spire.Pdf Imports Spire.Pdf.Security Imports System.Collections.Generic Imports System.Linq Imports System.Text Namespace __encryption Class Program Private Shared Sub Main(args As String()) Dim doc As New PdfDocument() doc.Security.KeySize = PdfEncryptionKeySize.Key256Bit doc.Security.OwnerPassword = "e-iceblue" doc.Security.UserPassword = "pdfcomponent" doc.Security.Permissions = PdfPermissionsFlags.Print Or PdfPermissionsFlags.CopyContent doc.SaveToFile("result.pdf", FileFormat.PDF) End Sub End Class End Namespace
希望這篇文章能給您帶來一定的幫助。感謝您的瀏覽。
關於C# 加密、解密PDF的視頻教程,可點擊鏈接地址查看:
http://v.youku.com/v_show/id_XNDAyNzg3MTk5Ng==.html?spm=a2hzp.8244740.0.0
