在 Internet 上共享机密文档时,PDF 加密是一项至关重要的任务。 通过使用强密码加密 PDF 文件,可以保护您的文件数据不被未授权方访问。 在某些情况下,可能还需要删除密码才能公开文档。您将学习如何在 C# 和 VB.NET 中使用 Spire.PDF for .NET 加密或解密 PDF 文件。
安装 Spire.PDF for .NET
首先,您需要添加 Spire.PDF for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
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 文档设置开启密码和权限密码加密 PDF 文件。
- 使用 PdfDocument.SaveToFile() 方法保存结果文件。
- C#
- VB.NET
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);
}
}
}
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 文件
当需要从 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() 方法保存结果文件。
- C#
- VB.NET
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);
}
}
}
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
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。