模板廣泛用於生成定製文檔。本文介紹如何使用 C# 查找和替換 PDF 文檔中的文本和單詞。我們將單獨討論如何以編程方式替換單詞和短語、使用區分大小寫的搜索替換單詞、使用正則表達式替換。最後,我們還將學習如何使用 C# 隱藏搜索到的字符串。

下面將涵蓋以下主題:

用於替換文本的 .NET 編輯 API

GroupDocs 展示了適用於 GroupDocs.Redaction for .NET,該 API 用於編輯、隱藏或刪除內容,甚至是 .NET 應用程序中文檔、演示文稿、電子表格、PDF 文件和圖像的元數據。有關 API 的更多詳細信息,請訪問其文檔。

您可以從 下載部分 下載 DLL 或 MSI 安裝程序,或通過 NuGet 在您的 .NET 應用程序中安裝 API /packages/groupdocs.redaction)。

PM> Install-Package GroupDocs.Redaction

無需安裝任何 PDF 編輯器或任何其他第三方軟件進行編輯。以下是以下示例中使用的 PDF 文檔的屏幕截圖。相同的方法適用於其他文檔格式,幾乎不需要更改代碼。

使用 C# 在 PDF 中查找和替換單詞或短語

您可以使用此功能隱藏任何機密數據,還可以從模板創建新的自定義文檔。以下步驟解釋瞭如何在 C# 應用程序中查找 PDF 文檔中的任何單詞/短語以及其他一些文本。

以下代碼在 C# 中查找並替換該詞。更準確地說,它通過用單詞“[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# 將 PDF 中的文本替換為正則表達式 (RegEx)

您還可以使用正則表達式替換任何特定的文本模式。以下步驟允許您在搜索後使用 .NET 應用程序中的正則表達式 (RegEx) 編輯 PDF。

下面的代碼展示瞭如何使用 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 的更多詳細信息,請訪問 文檔。如有疑問,請通過論壇 聯繫我們。

也可以看看