在其中一篇文章中,我們已經討論了作為 .NET 開發人員如何編輯文檔中的單詞。該策略以多種方式用於擦除敏感內容、隱藏或刪除電子郵件地址或身份證號碼等私人信息。本文討論如何在 Java 中的 Word DOC/DOCX 文檔中執行單詞搜索。我們將分別討論如何使用 Java API 進行編輯,使用不同的技術來查找和替換文本、單詞或短語。

下面將涵蓋以下主題:

用於單詞搜索和替換文本的 Java API

GroupDocs 提供了一個 Java 修訂 API,允許查找和替換 MS Word 支持的文件和其他各種文件格式的其他文檔的內容。除了文本編輯和光柵化之外,API 還支持元數據、註釋、電子表格以及圖像編輯功能。文檔中提供了 Word 文檔、電子表格、演示文稿、圖像和 PDF 文檔的支持的文件格式

下載或配置

您可以從 下載部分 下載 JAR 文件,或者只獲取基於 maven 的 Java 應用程序的 pom.xml 的最新存儲庫和依賴項配置。

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-redaction</artifactId>
        <version>21.12</version> 
</dependency>

編輯過程不需要 MS Word 或任何其他第三方軟件。現在讓我們從處理搜索和替換文本的不同方法開始。以下是以下示例中使用的 Word 文檔的屏幕截圖。您可以對其他文檔格式使用相同的方法,只需對源代碼進行很少的更改或不做任何更改。

要編輯文本的文檔

使用 Java 查找和替換單詞或短語

以下步驟解釋瞭如何在 Java 應用程序中查找並替換 Word 文檔中出現的單詞/短語。

  • 使用 Redactor 類加載 DOC/DOCX 文件。
  • 使用 ExactPhraseRedactionReplacementOptions 類查找確切的短語或單詞。
  • 使用 Redactor 的 apply 方法來應用編輯。
  • 要在更改後將文件保存在不同的位置,請使用輸出流。
  • 使用 save 方法保存密文更改。

以下代碼使用 Java 在上述 Word 文檔中查找並替換單詞“John Doe”。它用單詞“[censored]”替換了所有出現的“John Doe”。

// 使用 Java 找到確切的短語並將其替換為其他文本
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// 如果要將編輯後的文件以不同的名稱保存在不同的位置。
FileOutputStream stream = new FileOutputStream("path/exactPhrase.docx");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);

代碼的輸出如下。

使用精確短語編輯

Java 中區分大小寫的單詞搜索和替換文本

您似乎對單詞的確切字母大小寫持謹慎態度,只想替換僅與區分大小寫的搜索匹配的單詞。以下代碼替換了 Java 中單詞“John Doe”的完全大小寫匹配的存在。

// 查找確切的短語(區分大小寫)並使用 Java 將其替換為其他文本
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

代碼的輸出如下。

區分大小寫的編輯

在 Java 中使用正則表達式 (RegEx) 替換文本

如果您不想更改確切的單詞,而是更改文檔中存在的某些模式,則可以使用正則表達式。以下步驟允許您在 Java 應用程序中使用正則表達式 (RegEx) 查找和替換任何文本模式。

  • 使用 Redactor 類加載文檔。
  • 使用 RegexRedaction 創建 RegEx。
  • 使用 ReplacementOptions 提供文本以替換 RegEx 匹配項。
  • 使用 apply 方法替換所有正則表達式匹配項。
  • 使用 save 方法獲取編輯後的文檔。

以下代碼顯示瞭如何使用 RegEx 在 Word 文件中執行單詞搜索並使用 Java 將其替換為其他文本。

// 使用正則表達式查找文本並使用 Java 將其替換為其他文本
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
redactor.save();

以下是上述代碼的輸出:

正則表達式編輯

用 Java 中的彩色框替換文本

如果您不想替換您的內容而只想隱藏它,API 允許您通過在其上畫一個框來覆蓋文本匹配。以下 Java 代碼使用黑色矩形框隱藏文本。

// 查找文本並通過使用 Java 在其上繪製矩形來隱藏它
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true, new ReplacementOptions(java.awt.Color.BLACK)));
redactor.save();

上述代碼的輸出如下。

使用 Box 隱藏文本

獲取免費的 API 許可證

您可以獲得免費的臨時許可證,以便在不受評估限制的情況下使用 API。

結論

總而言之,您學習瞭如何執行單詞搜索以使用精確文本短語搜索、區分大小寫的搜索、使用正則表達式搜索以及最後但並非最不重要的隱藏文本而不是替換文本來查找 Word 文檔中的文本。您可以使用這些不同的技術以不同的方式替換 MS Word 文檔中的發現。

有關 API 的更多詳細信息和學習,請訪問 文檔。如有疑問,請通過論壇 聯繫我們。

也可以看看