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 Absorber 對象
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 的 文檔 探索更多高級功能。

也可以看看