iText 是一个用于处理 PDF 文件的库,它提供了许多功能,包括创建、编辑、加密和解密 PDF 文件。要在 C# 中使用 iText 处理加密的 PDF 文件,你需要使用 iText 7。以下是一个简单的示例,说明如何使用 iText 7 对 PDF 文件进行加密和解密:
首先,确保已安装 iText 7 库。你可以通过 NuGet 包管理器安装 iText 7:
Install-Package iText.Kernel
Install-Package iText.Layout
Install-Package iText.Crypto
接下来,创建一个 C# 控制台应用程序并添加以下代码:
using System;
using System.IO;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Encryption;
using iText.Layout;
namespace EncryptAndDecryptPDF
{
class Program
{
static void Main(string[] args)
{
string inputPath = "input.pdf"; // 输入 PDF 文件路径
string outputPath = "output.pdf"; // 输出 PDF 文件路径
string password = "your_password"; // 密码
// 加密 PDF 文件
EncryptPdf(inputPath, outputPath, password);
// 解密 PDF 文件
DecryptPdf(outputPath, password);
}
static void EncryptPdf(string inputPath, string outputPath, string password)
{
using (PdfReader reader = new PdfReader(inputPath))
{
using (PdfWriter writer = new PdfWriter(outputPath, new WriterProperties().SetStandardEncryption(password.GetBytes(), password.Length, EncryptionConstants.ALLOW_PRINTING | EncryptionConstants.ALLOW_COPY)))
{
writer.Write(reader);
}
}
}
static void DecryptPdf(string inputPath, string password)
{
using (PdfReader reader = new PdfReader(inputPath, password.GetBytes()))
{
using (PdfWriter writer = new PdfWriter(new OutputStreamWriter(Console.OpenStandardOutput())))
{
writer.Write(reader);
}
}
}
}
}
在这个示例中,我们首先定义了输入 PDF 文件的路径(inputPath
)、输出 PDF 文件的路径(outputPath
)和密码(password
)。然后,我们使用 EncryptPdf
方法对 PDF 文件进行加密,并将加密后的文件保存到 outputPath
。最后,我们使用 DecryptPdf
方法对加密后的 PDF 文件进行解密,并将解密后的文件输出到控制台。
请注意,这个示例仅用于演示目的。在实际应用中,你可能需要根据需求对代码进行调整。