如何通过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

 

posted @ 2022-11-16 13:56  Gia-  阅读(722)  评论(0编辑  收藏  举报