
您可以通过编程方式编辑 PDF 文档,而无需安装任何外部应用程序。作为 C# 开发人员,您可以轻松地在 .NET 应用程序中编辑 PDF 文档。本文将重点介绍如何使用 C# 编辑 PDF 文档。
本文讨论/涵盖了以下主题:
用于 PDF 编辑的 C# API
对于 PDF 文档中的编辑,我将使用 GroupDocs.Redaction for .NET API。它允许您编辑 PDF、Word、Excel、PowerPoint 和图像文件。它还使您能够从 30 多种支持的格式中删除分类信息。您可以应用各种类型的密文,例如文本密文、元数据密文、注释密文和表格文档密文。
您可以 下载 API 的 DLL 或使用 NuGet 安装它。
Install-Package GroupDocs.Redaction
使用 C# 编辑 PDF 中的文本
您可以按照以下提到的简单步骤轻松地在 PDF 文档中应用文本编辑:
- 使用输入文件路径创建 Redactor 类的实例
- 使用 SearchPhrase 和 ReplacementOptions 创建 ExactPhraseRedaction 类实例
- 调用 Redactor.Apply() 方法
- 在 RedactorChangeLog 类对象中获取结果
- 调用 Redactor.Save() 方法
以下代码示例展示了如何使用 C# 编辑 PDF 文档中的文本。
// 创建编辑器
Redactor redactor = new Redactor("C:\\Files\\sample.pdf");
// 创建精确的短语编辑
ExactPhraseRedaction redaction = new ExactPhraseRedaction("John Doe", true, new ReplacementOptions("[personal]"));
// 应用编辑
RedactorChangeLog result = redactor.Apply(redaction);
if (result.Status != RedactionStatus.Failed)
{
redactor.Save();
};

使用 C# 编辑 PDF 中的文本
Redactor 是主要类,提供各种方法来执行文档编辑过程。它还使您能够打开、编辑和保存文档。此类的 Apply() 方法将定义的编辑应用到文档。此外,该类的 Save() 方法将文档保存到文件中。
ExactPhraseRedaction 提供了执行文本编辑以替换文档中的确切短语的方法。它还允许通过将 IsCaseSensitive 设置为 true 来搜索区分大小写的数据。
ReplacementOptions 表示匹配文本替换的选项。
RedactorChangeLog 类表示编辑列表的结果,传递给 Redactor 类的 Apply() 方法。
使用 C# 编辑 PDF 中的元数据
您可以按照以下提到的简单步骤在 PDF 文档中应用元数据编辑:
- 使用输入文件路径创建 Redactor 类的实例
- 使用 MetadataFilter 创建 EraseMetadataRedaction 类实例以包含
- 调用 Redactor.Apply() 方法
- 调用 Redactor.Save() 方法
以下代码示例展示了如何使用 C# 编辑 PDF 文档中的元数据。
// 创建编辑器
Redactor redactor = new Redactor("C:\\Files\\sample.pdf");
// 删除作者、经理和公司
EraseMetadataRedaction redaction = new EraseMetadataRedaction(MetadataFilters.Author | MetadataFilters.Manager | MetadataFilters.Company);
// 应用编辑
redactor.Apply(redaction);
redactor.Save();

使用 C# 编辑 PDF 中的元数据
EraseMetadataRedaction 类提供了擦除所有元数据的方法。它还可以从文档中删除与特定 MetadataFilters 匹配的元数据。
MetadataFilters 是最常见的文档元数据类型的列表,例如作者、评论、公司。
使用 C# 编辑 PDF 中的图像
您可以按照以下提到的简单步骤在 PDF 文档中应用图像编辑:
- 使用输入文件路径创建 Redactor 类的实例
- 定义绘图点和大小
- 使用绘图点和 RegionReplacementOptions 创建 ImageAreaRedaction 类实例
- 调用 Redactor.Apply() 方法
- 调用 Redactor.Save() 方法
以下代码示例展示了如何使用 C# 编辑 PDF 文档中的图像。
// 创建编辑器
Redactor redactor = new Redactor("C:\\Files\\sample_with_images.pdf");
// 定义大小和点
System.Drawing.Point samplePoint = new System.Drawing.Point(0, 0);
System.Drawing.Size sampleSize = new System.Drawing.Size(300, 240);
// 定义图像区域编辑
ImageAreaRedaction redaction = new ImageAreaRedaction(samplePoint,
new RegionReplacementOptions(System.Drawing.Color.Blue, sampleSize));
// 应用编辑
RedactorChangeLog result = redactor.Apply(redaction);
if (result.Status != RedactionStatus.Failed)
{
redactor.Save();
};

使用 C# 编辑 PDF 中的图像
ImageAreaRedaction 类允许在图像文档的给定区域放置一个彩色矩形。
RegionReplacementOption 类表示要替换为图像的区域的颜色和面积参数。
使用 C# 在 PDF 中应用多个密文
您可以按照以下提到的简单步骤在 PDF 文档中应用多个编辑:
- 使用输入文件路径创建 Redactor 类的实例
- 创建 ExactPhraseRedaction、RegexRedaction 和 EraseMetadataRedaction
- 将创建的密文添加到密文列表
- 调用 Redactor.Apply() 方法
- 调用 Redactor.Save() 方法, show errors if failed
以下代码示例展示了如何使用 C# 在 PDF 文档中应用多个密文。
// 创建编辑器
Redactor redactor = new Redactor("C:\\Files\\sample.pdf");
// 定义多个编辑
var redactionList = new Redaction[]
{
new ExactPhraseRedaction("John Doe", new ReplacementOptions("[Client]")),
new RegexRedaction("Redaction", new ReplacementOptions("[Product]")),
new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions(System.Drawing.Color.Blue)),
new EraseMetadataRedaction(MetadataFilters.All)
};
// 应用编辑
RedactorChangeLog result = redactor.Apply(redactionList);
// 如果应用则保存否则显示错误
if (result.Status == RedactionStatus.Applied)
{
redactor.Save();
}
else if (result.Status == RedactionStatus.Failed)
{
for (int i = 0; i < result.RedactionLog.Count; i++)
{
RedactorLogEntry logEntry = result.RedactionLog[i];
if (logEntry.Result.Status != RedactionStatus.Applied)
{
Console.WriteLine("{0} status is {1}, details: {2}",
logEntry.Redaction.GetType().Name,
logEntry.Result.Status,
logEntry.Result.ErrorMessage);
}
}
};

使用 C# 在 PDF 中应用多个密文
RegexRedaction 类允许执行文本编辑。您可以通过使用正则表达式匹配文本来搜索和替换文档中的任何文本。
获得免费许可证
您可以通过请求 免费的临时许可证 来试用该 API,而不受评估限制。
结论
在本文中,您学习了如何使用 C# 编辑 PDF 文档。您还学习了如何编辑 PDF 文档中的文本、元数据和图像。此外,您还学习了如何使用 C# 在 PDF 中应用多个编辑。您可以使用 文档 了解有关 .NET API 的 GroupDocs.Redaction 的更多信息。如有任何歧义,请随时在 论坛 上与我们联系。