查找和替換選項可以一次性替換文檔中的一段特定文本。這樣,您就不必手動定位和更新整個文檔中出現的每個文本。本文甚至更進一步,涵蓋瞭如何在 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 文檔中查找和替換文本的步驟。
- 使用 Document 類使用其路徑加載 PDF 文檔。
- 創建 TextFragmentAbsorber 類的實例,並向其構造函數提供搜索短語。
- 使用 Document.Pages.Accept(TextFragmentAbsorber) 接受 PDF 所有頁面的文本吸收器。
- 將提取的文本片段放入 TextFragmentCollection 對像中。
- 遍歷找到的 TextFragmentCollection 並替換每個片段中的文本。
- 使用 Document.Save(String) 方法保存更新的 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 文檔的特定頁面上查找和替換文本的步驟。
- 使用 Document 類使用其路徑加載 PDF 文檔。
- 創建 TextFragmentAbsorber 類的實例,並向其構造函數提供搜索短語。
- 使用 [Document.Pages1.Accept(TextFragmentAbsorber)]12 接受所需頁面的文本吸收器。
- 遍歷找到的 TextFragmentAbsorber.TextFragments 集合併替換每個片段中的文本。
- 使用 Document.Save(String) 方法保存更新的 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 文檔頁面的特定區域中查找和替換文本。以下步驟顯示如何定義特定區域,然後替換其中的文本。
- 使用 Document 類使用其路徑加載 PDF 文檔。
- 創建 TextFragmentAbsorber 類的實例,並向其構造函數提供搜索短語。
- 使用 Document.Pages[0].Accept(TextFragmentAbsorber) 接受所需頁面的文本吸收器。
- 使用 Rectangle 類定義頁面區域。
- 遍歷 TextFragmentAbsorber.TextFragments 集合併替換每個片段中的文本。
- 使用 Document.Save(String) 方法保存更新的 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。以下是執行此操作的步驟。
- 使用 Document 類使用其路徑加載 PDF 文檔。
- 創建 TextFragmentAbsorber 類的實例,並向其構造函數提供搜索短語。
- 創建 TextSearchOptions 類的實例並將 true 傳遞給其構造函數以啟用基於正則表達式的搜索。
- 將 TextSearchOptions 對象分配給 TextFragmentAbsorber.TextSearchOptions 屬性。
- 使用 Document.Pages[0].Accept(TextFragmentAbsorber) 接受所需頁面的文本吸收器。
- 使用 Rectangle 類定義頁面區域。
- 遍歷 TextFragmentAbsorber.TextFragments 集合併替換每個片段中的文本。
- 使用 Document.Save(String) 方法保存更新的 PDF 文檔。
以下代碼示例展示瞭如何使用 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 的 文檔 探索更多高級功能。