C# 查找和替换 PDF 中的文本

查找和替换选项可以一次性替换文档中的特定文本。这样,您不必手动定位和更新整个文档中出现的每个文本。本文甚至更进一步,介绍了如何自动化 PDF 文档中的查找和替换文本功能。特别是,您将学习如何在 C# .NET 中查找和替换 PDF 中的文本。我们还将演示如何使用 C# 替换特定页面或页面区域中的文本。

用于在 PDF 中查找和替换文本的 C# .NET API - 免费下载

Aspose.PDF for .NET 是一个 C# 类库,为 .NET 应用程序提供基本和高级 PDF 操作功能。该 API 还允许您以不同方式无缝查找和替换 PDF 文件中的文本。您可以 下载 API 的 DLL 或使用 NuGet 安装它。

PM> Install-Package Aspose.PDF

使用 C# 在 PDF 中查找和替换文本

以下是在 PDF 文档中查找和替换文本的步骤。

以下代码示例展示了如何使用 C# 在 PDF 中查找和替换文本。

// 打开文档
Document pdfDocument = new Document("Document.pdf");

// 创建 TextAbsorber 对象以查找输入搜索短语的所有实例
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// 接受所有页面的吸收器
pdfDocument.Pages.Accept(textFragmentAbsorber);

// 获取提取的文本片段
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// 遍历片段
foreach (TextFragment textFragment in textFragmentCollection)
{
    // 更新文本和其他属性
    textFragment.Text = "TEXT";
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}
            
// 保存生成的 PDF 文档。
pdfDocument.Save("updated-document.pdf");

C# 替换特定 PDF 页面中的文本

以下是在 PDF 文档的特定页面上查找和替换文本的步骤。

以下代码示例展示了如何使用 C# 在 PDF 的特定页面中查找和替换文本。

// 打开文档
Document pdfDocument = new Document("Document.pdf");

// 创建 TextAbsorber 对象以查找输入搜索短语的所有实例
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// 接受所需的吸收器
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// 获取提取的文本片段
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// 遍历片段
foreach (TextFragment textFragment in textFragmentCollection)
{
    // 更新文本和其他属性
    textFragment.Text = "TEXT";
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

// 保存生成的 PDF 文档。
pdfDocument.Save("updated-document.pdf");

在 C# 中替换 PDF 页面区域中的文本

您还可以在 PDF 文档的页面特定区域中查找和替换文本。以下步骤显示如何定义特定区域,然后替换其中的文本。

以下代码示例演示如何使用 C# 在 PDF 的特定页面区域中查找和替换文本。

// 加载 PDF 文件
Document pdf = new Document("Document.pdf");

// 实例化 TextFragment 吸收器对象
TextFragmentAbsorber TextFragmentAbsorberAddress = new TextFragmentAbsorber();

// 在页面绑定内搜索文本
TextFragmentAbsorberAddress.TextSearchOptions.LimitToPageBounds = true;

// 指定 TextSearch 选项的页面区域
TextFragmentAbsorberAddress.TextSearchOptions.Rectangle = new Rectangle(100, 100, 200, 200);

// 从 PDF 文件的第一页搜索文本
pdf.Pages[1].Accept(TextFragmentAbsorberAddress);

// 遍历单个 TextFragment
foreach (TextFragment tf in TextFragmentAbsorberAddress.TextFragments)
{
    // 将文本更新为空白字符
    tf.Text = "";
}

// 文本替换后保存更新的 PDF 文件
pdf.Save("output.pdf");

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

您还可以使用正则表达式来查找和替换与特定模式匹配的文本。为此,您只需要提供正则表达式而不是普通搜索短语并使用 TextSearchOptions。以下是执行此操作的步骤。

以下代码示例展示了如何使用 C# 使用正则表达式查找和替换 PDF 中的文本。

// 打开文档
Document pdfDocument = new Document("Document.pdf");

// 创建 TextAbsorber 对象以查找与正则表达式匹配的所有短语
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // Like 1999-2000

// 设置文本搜索选项以指定正则表达式用法
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;

// 接受单页的吸收器
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// 获取提取的文本片段
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// 遍历片段
foreach (TextFragment textFragment in textFragmentCollection)
{
    // 更新文本和其他属性
    textFragment.Text = "New Phrase";
    // 设置为对象的实例。
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

// 保存 PDF
pdfDocument.Save("output.pdf");

结论

如今,PDF 自动化被广泛采用,以便从 Web 或桌面应用程序中操作 PDF 文档。本文介绍了一个有用的 PDF 自动化功能,可在 C# 中查找和替换 PDF 中的文本。分步指南和代码示例展示了如何在整个 PDF、PDF 中的特定页面或页面区域中查找和替换文本。您可以使用 API 的 文档 探索更高级的功能。

也可以看看