在 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 天的临时许可证。