模板广泛用于生成定制文档。本文指导如何使用 C# 查找和替换 PDF 文档中的文本和单词。我们将分别讨论如何以编程方式替换单词和短语,用区分大小写的搜索替换单词,使用正则表达式替换。最后,我们还将学习如何使用 C# 隐藏搜索到的字符串。

下面将介绍以下主题:

用于替换文本的 .NET Redaction API

GroupDocs 展示了适用于 .NET 的 GroupDocs.Redaction,该 API 用于编辑、隐藏或删除 .NET 应用程序中的文档、演示文稿、电子表格、PDF 文件和图像的内容甚至元数据。有关 API 的更多详细信息,请访问其文档。

您可以从 下载部分 下载 DLLsMSI 安装程序,或通过 NuGet 在您的 .NET 应用程序中安装 API ://www.nuget.org/packages/groupdocs.redaction)。

PM> Install-Package GroupDocs.Redaction

无需安装任何 PDF 编辑器或任何其他第三方软件进行编辑。以下是以下示例中使用的 PDF 文档的屏幕截图。同样的方法也适用于其他文档格式,代码几乎没有或几乎没有变化。

使用 C# 查找和替换 PDF 中的单词或短语

您可以使用此功能隐藏任何机密数据,还可以从模板创建新的自定义文档。以下步骤说明了如何在 C# 应用程序中查找包含其他文本的 PDF 文档中的任何单词/短语。

  • 使用 Redactor 类加载 PDF 文件。
  • 查找确切的短语或单词,使用 ExactPhraseRedaction 和 [ReplacementOptions](https://apireference .groupdocs.com/redaction/net/groupdocs.redaction.redactions/replacementoptions)。
  • 使用 Apply() 方法应用编辑
  • 保存使用 Save() 方法更改的新文档。

以下代码查找并替换 C# 中的单词。更准确地说,它通过将“John Doe”替换为单词“[censored]”来隐藏所有出现的“John Doe”。

// 使用 C# 查找确切的短语并将其替换为其他文本
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

代码的输出如下。

使用 C# 在 PDF 中查找和替换区分大小写的文本或短语

您可以执行区分大小写的搜索和编辑。以下代码替换了 C# 中单词“John Doe”但不替换“john doe”的区分大小写的存在。

// 查找确切的短语(区分大小写)并使用 C# 将其替换为其他文本
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

代码的输出如下。

使用 C# 用正则表达式 (RegEx) 替换 PDF 中的文本

您还可以使用正则表达式替换任何特定的文本模式。以下步骤允许您在 .NET 应用程序中使用正则表达式 (RegEx) 搜索后编辑 PDF。

  • 使用 Redactor 类加载 PDF 文档。
  • **使用 RegexRedaction 类和 ReplacementOptions 查找正则表达式匹配.com/redaction/net/groupdocs.redaction.redactions/replacementoptions)。
  • 使用 Apply() 方法对文档进行更改。
  • 保存使用适当的 Save() 方法编辑的文档。

以下代码显示了如何使用 RegEx 在 PDF 文档中查找特定文本模式,然后使用 C# 将其替换/隐藏为其他文本。

// 使用正则表达式查找文本并使用 C# 将其替换为其他文本
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

上述代码的输出如下。

用 C# 中的彩色框替换文本

如果您只想隐藏您的 PDF 文件的搜索内容(私人信息),您只需在其上放置一个封面即可。 API 允许您隐藏搜索到的文本。以下 C# 代码将黑色矩形放置在提到的私有文本上。

// 在 PDF 中查找文本并通过使用 C# 在其上绘制矩形来隐藏它
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions(System.Drawing.Color.Black)));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

上述代码的输出如下。

获取免费 API 许可证

您可以 获得免费的临时许可证 以便在没有评估限制的情况下使用 API。

结论

最后,我们学习了如何使用不同的搜索技术在 PDF 文件中查找某些文本。稍后我们讨论了如何通过使用 C# 替换或隐藏 .NET 应用程序中的文本来编辑 PDF 文件。更准确地说,我们只是搜索单词、短语、区分大小写搜索以及使用 C# 中的正则表达式。最后,我们将搜索结果替换为其他文本或在其上用矩形框隐藏。

有关 API 的更多详细信息,请访问 文档。如有疑问,请通过 论坛 联系我们。

也可以看看