模板被廣泛用於通過用相應的值替換模板鍵來生成個性化文檔。本文介紹如何在 Java 中查找和替換 PDF 文檔中的文本和單詞。我們將分別討論如何執行單詞和短語搜索、區分大小寫的單詞搜索、使用正則表達式替換找到的文本。最後,我們將學習如何使用 Java 隱藏文本的搜索部分。

下面將涵蓋以下主題:

用於替換文本的 Java Redaction API

GroupDocs 提供了用於應用各種類型的編輯的 Java API。它允許編輯、隱藏或刪除應用程序中文檔、演示文稿、電子表格、PDF 文件和圖像的內容甚至元數據。有關 API 的更多詳細信息,請訪問其 文檔

下載或配置

您可以從 下載部分 下載 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>

好處之一是無需安裝任何 PDF 編輯器或任何其他用於 PDF 編輯的第三方軟件。以下是以下示例中用於編輯的 PDF 文檔的內容。相同的方法適用於其他文檔格式,源代碼幾乎沒有任何區別。

在 Java 中查找和替換 PDF 中的單詞或短語

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

  • 使用 Redactor 類加載 PDF 文件。
  • 使用 ExactPhraseRedaction 和 [ReplacementOptions](https://apireference.groupdocs. com/redaction/java/com.groupdocs.redaction.redactions/ReplacementOptions)。
  • 使用 apply() 方法應用密文。
  • 使用 save() 方法保存包含更改的新文檔。

以下代碼使用 Java 查找並替換 PDF 文件中的單詞。更準確地說,它通過用單詞“[censored]”替換它來隱藏所有出現的“John Doe”。

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

上述代碼的輸出如下。

使用 Java 在 PDF 中查找和替換區分大小寫的文本或短語

您可以執行區分大小寫的搜索和編輯。以下代碼使用 Java 替換 PDF 文檔中區分大小寫的單詞“John Doe”而不是“john doe”。

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

代碼的輸出如下。

用 Java 中的正則表達式 (RegEx) 替換 PDF 中的文本

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

  • 使用 Redactor 類加載 PDF 文檔。
  • 使用帶有 ReplacementOptions
  • 使用 apply() 方法將更改應用於文檔。
  • 使用適當的 save() 方法保存編輯文檔。

下面的 Java 代碼展示瞭如何使用 RegEx 在 PDF 文檔中找到特定的文本模式,然後用其他文本替換/隱藏它。

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

上述代碼的輸出如下。

用 Java 中的彩色框替換文本

如果您只是想將搜索到的機密信息隱藏在您的 PDF 文件中,您可以簡單地在上面蓋上一個封面。 API 允許您隱藏搜索到的文本。以下代碼將黑色矩形放置在 Java 中提到的私有文本上。

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

上述代碼的輸出如下。

獲取免費的 API 許可證

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

結論

總而言之,我們學習瞭如何使用不同的搜索技術在 PDF 文件中查找特定文本。後來我們通過替換或隱藏 Java 應用程序中的文本來編輯 PDF 文件。更準確地說,我們對單詞、短語進行了簡單搜索,搜索時區分大小寫,並使用 Java 中的 RegEx。最後,我們用其他文本或簡單地用顏色將其隱藏來更改搜索結果。

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

也可以看看