如何通过C#/VB.NET为 PDF加密和解密
在通过PDF文档格式传送类似于合同或公司机密等重要文件时,为其添加密码可以进一步保证文档的安全,避免内容泄露。Free Spire.PDF for .NET 可以轻松实现PDF文档的加密和解密这两个功能。下面是详细操作步骤和相关代码。
安装 Free Spire.PDF for .NET
方法一,通过NuGet安装Free Spire.PDF for .NET:
依次选择工具>NuGet包管理器>程序包管理器控制台,然后执行以下命令:
PM> Install-Package FreeSpire.PDF
方法二,在程序中手动引入Spire.pdf.dll文件:
将Free Spire.PDF for .NET 下载到本地,解压并安装。安装完成后,打开 Visual Studio创建新项目,在右边的“解决方案资源管理器”中右键点击“引用”,再依次选择“添加引用”> “浏览”,找到安装路径下BIN文件夹中的dll文件,点击“确定”,将其添加引用至程序中。
如何为PDF文档加密
具体操作:
- 创建一个 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载示例 PDF 文件。
- 使用 PdfDocument.Security 属性获取文档的安全参数。
- 使用 PdfSecurity.Encrypt(string openPassword, string permissionPassword, PdfPermissionsFlags permissions, PdfEncryptionKeySize keySize) 方法为 PDF 文档设置开启密码和权限密码加密 PDF 文件。
- 使用 PdfDocument.SaveToFile() 方法保存结果文件。
相关代码:
C#:
using Spire.Pdf; using Spire.Pdf.Security; namespace EncryptPDF { class Program { static void Main(string[] args) { //创建一个PDF对象 PdfDocument pdf = new PdfDocument(); //加载示例PDF文档 pdf.LoadFromFile("原文档.pdf"); //使用密码加密PDF文件 pdf.Security.Encrypt("open", "permission", PdfPermissionsFlags.Print | PdfPermissionsFlags.CopyContent, PdfEncryptionKeySize.Key128Bit); //保存结果文档 pdf.SaveToFile("加密.pdf", FileFormat.PDF); } } }
VB.NET:
Imports Spire.Pdf Imports Spire.Pdf.Security Namespace EncryptPDF Friend Class Program Private Shared Sub Main(ByVal args As String()) '创建一个PDF对象 Dim pdf As PdfDocument = New PdfDocument() '加载示例PDF文档 pdf.LoadFromFile("原文档.pdf") '使用密码加密PDF文件 pdf.Security.Encrypt("open", "permission", PdfPermissionsFlags.Print Or PdfPermissionsFlags.CopyContent, PdfEncryptionKeySize.Key128Bit) '保存结果文档 pdf.SaveToFile("加密.pdf", FileFormat.PDF) End Sub End Class End Namespace
如何对加密后的PDF文档进行解密
具体操作:
- 创建一个 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() 方法保存结果文件。
相关代码:
C#:
using Spire.Pdf; using Spire.Pdf.Security; namespace DecryptPDF { class Program { static void Main(string[] args) { //创建一个 PdfDocument 对象 PdfDocument pdf = new PdfDocument(); //使用密码加载加密的PDF文件 pdf.LoadFromFile("加密.pdf", "open"); //将密码设置为空以解密PDF pdf.Security.Encrypt(string.Empty, string.Empty, PdfPermissionsFlags.Default, PdfEncryptionKeySize.Key128Bit, "permission"); //保存结果文档 pdf.SaveToFile("解密.pdf", FileFormat.PDF); } } }
VB.NET:
Imports Spire.Pdf Imports Spire.Pdf.Security Namespace DecryptPDF Friend Class Program Private Shared Sub Main(ByVal args As String()) '创建一个 PdfDocument 对象 Dim pdf As PdfDocument = New PdfDocument() '使用密码加载加密的PDF文件 pdf.LoadFromFile("加密.pdf", "open") '将密码设置为空以解密PDF pdf.Security.Encrypt(String.Empty, String.Empty, PdfPermissionsFlags.[Default], PdfEncryptionKeySize.Key128Bit, "permission") '保存结果文档 pdf.SaveToFile("解密.pdf", FileFormat.PDF) End Sub End Class End Namespace