加密或解密 PDF 文件
在互联网上共享机密文件时,PDF 加密是一项至关重要的任务。通过使用强密码对 PDF 文件进行加密,可以保护文件数据不被未经授权方访问。在某些情况下,可能还需要删除密码才能公开文档。在本文中,您将学习如何使用 Spire.PDF for .NET 以编程方式加密或解密 PDF 文件。
- 使用密码加密 PDF 文件
- 删除密码以解密 PDF 文件
安装 Spire.PDF for .NET
首先,您需要将 Spire.PDF for.NET 软件包中包含的 DLL 文件作为引用添加到您的 .NET 项目中。这些 DLL 文件既可以从这个链接下载,也可以通过 NuGet 安装。
1 PM> Install-Package Spire.PDF
用密码加密 PDF 文件
有两种用于加密 PDF 文件的密码--打开密码和权限密码。前者用于打开 PDF 文件,后者用于限制打印、内容复制、注释等。如果使用这两种密码对 PDF 文件进行加密,则可使用任一种密码打开文件。
Spire.PDF for .NET提供的PdfSecurity.Encrypt(string openPassword, string permissionPassword, PdfPermissionsFlags permissions, PdfEncryptionKeySize keySize)方法允许你同时设置打开密码和权限密码来加密PDF文件。具体步骤如下。
- 创建一个 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载一个示例 PDF 文件。
- 使用PdfDocument.Security属性获取文档的安全参数。
- 使用PdfSecurity.Encrypt(string openPassword, string permissionPassword, PdfPermissionsFlags permissions, PdfEncryptionKeySize keySize)方法用打开密码和权限密码加密PDF文件。
- 使用PdfDocument.SaveToFile()方法保存结果文件。
[C#]
01 using Spire.Pdf; 02 using Spire.Pdf.Security; 03 04 namespace EncryptPDF 05 { 06 class Program 07 { 08 static void Main(string[] args) 09 { 10 //Create a PdfDocument object 11 PdfDocument pdf = new PdfDocument(); 12 13 //Load a sample PDF file 14 pdf.LoadFromFile(@"E:\Files\sample.pdf"); 15 16 //Encrypt the PDF file with password 17 pdf.Security.Encrypt("open", "permission", PdfPermissionsFlags.Print | PdfPermissionsFlags.CopyContent, PdfEncryptionKeySize.Key128Bit); 18 19 //Save the result file 20 pdf.SaveToFile("Encrypt.pdf", FileFormat.PDF); 21 } 22 } 23 }
[VB.NET]
01 Imports Spire.Pdf 02 Imports Spire.Pdf.Security 03 04 Namespace EncryptPDF 05 Class Program 06 Private Shared Sub Main(ByVal args As String()) 07 08 'Create a PdfDocument object 09 Dim pdf As PdfDocument = New PdfDocument() 10 11 'Load a sample PDF file 12 pdf.LoadFromFile("E:\Files\sample.pdf") 13 14 'Encrypt the PDF file with password 15 pdf.Security.Encrypt("open", "permission", PdfPermissionsFlags.Print Or PdfPermissionsFlags.CopyContent, PdfEncryptionKeySize.Key128Bit) 16 17 'Save the result file 18 pdf.SaveToFile("Encrypt.pdf", FileFormat.PDF) 19 End Sub 20 End Class 21 End Namespace
移除密码解密PDF文件
当你需要从PDF文件中移除密码时,你可以在调用PdfSecurity.Encrypt(string openPassword, string permissionPassword, PdfPermissionsFlags permissions, PdfEncryptionKeySize keySize, string originalPermissionPassword)方法时将打开密码和权限密码设置为空。具体步骤如下
- 创建一个 PdfDocument 对象。
- 使用PdfDocument.LoadFromFile(string filename, string password)方法加载带密码的加密PDF文件。
- 使用PdfDocument.Security属性获取文档的安全参数。
- 通过使用PdfSecurity.Encrypt(string openPassword, string permissionPassword, PdfPermissionsFlags permissions, PdfEncryptionKeySize keySize, string originalPermissionPassword)方法将打开密码和权限密码设置为空,解密PDF文件。
- 使用 PdfDocument.SaveToFile() 方法保存结果文件。
01 using Spire.Pdf; 02 using Spire.Pdf.Security; 03 04 namespace DecryptPDF 05 { 06 class Program 07 { 08 static void Main(string[] args) 09 { 10 //Create a PdfDocument object 11 PdfDocument pdf = new PdfDocument(); 12 13 //Load the encrypted PDF file with password 14 pdf.LoadFromFile("Encrypt.pdf", "open"); 15 16 //Set the password as empty to decrypt PDF 17 pdf.Security.Encrypt(string.Empty, string.Empty, PdfPermissionsFlags.Default, PdfEncryptionKeySize.Key128Bit, "permission"); 18 19 //Save the result file 20 pdf.SaveToFile("Decrypt.pdf", FileFormat.PDF); 21 } 22 } 23 }
[VB.NET]
01 Imports Spire.Pdf 02 Imports Spire.Pdf.Security 03 04 Namespace DecryptPDF 05 Class Program 06 Private Shared Sub Main(ByVal args As String()) 07 08 'Create a PdfDocument object 09 Dim pdf As PdfDocument = New PdfDocument() 10 11 'Load the encrypted PDF file with password 12 pdf.LoadFromFile("Encrypt.pdf", "open") 13 14 'Set the password as empty to decrypt PDF 15 pdf.Security.Encrypt(String.Empty, String.Empty, PdfPermissionsFlags.[Default], PdfEncryptionKeySize.Key128Bit, "permission") 16 17 'Save the result file 18 pdf.SaveToFile("Decrypt.pdf", FileFormat.PDF) 19 End Sub 20 End Class 21 End Namespace
申请临时许可证
若想从生成的文档中删除评估信息,或解除功能限制,申请 30 天试用许可证。