水印主要用於將文件作為草稿提及,並避免任何非法使用機密文件。當草稿定稿或保密結束時,您可以從此類文檔中刪除水印。水印可以是基於文本的,也可以是基於圖像的。在本文中,我們將了解如何使用 Java 從 PDF 文檔中刪除水印。

以編程方式從 PDF 文件中刪除水印。

用於去除 PDF 水印的 Java API

GroupDocs.Watermark 提供 Java API 來處理不同文件格式 的文檔和圖像中的水印。如果您正在製作水印去除應用程序,它會為您提供一些有用的方法:

  • 去除 PDF 文檔中的所有水印
  • 去除超鏈接水印
  • 刪除具有特定文本格式的水印

讓我們了解 Java 開發人員如何使用 GroupDocs.Watermark for Java API 以不同方式從 PDF 中刪除水印。首先,使用您的應用程序下載並配置 API。

下載或配置

您可以從 下載 部分下載 JAR 文件,或在您的 Java 應用程序中使用最新的存儲庫和依賴項 Maven 配置。

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

用 Java 去除 PDF 文件中的所有水印

API 使您能夠輕鬆找到並從文檔中刪除特定水印和所有水印。以下步驟顯示瞭如何使用 Java 從 PDF 文檔中刪除所有水印。

  • 使用 Watermarker 加載 PDF 文檔。
  • 使用搜索將所有 可能的水印 作為一個集合獲取。
  • 遍歷整個集合併刪除每個水印或符合條件的水印。
  • 保存沒有水印的更新 PDF。

以下 Java 代碼刪除 PDF 文檔中的所有水印。

// 從 Java 中的 PDF 和其他文檔中刪除水印
Watermarker watermarker = new Watermarker("filepath/document-with-watermarks.pdf");

PossibleWatermarkCollection possibleWatermarks = watermarker.search();
for (int i = 0 ; i < watermarks.getCount(); i++)
{
    // 通過在文檔中提及索引來刪除每個水印。
    possibleWatermarks.removeAt(i);
}
watermarker.save("filepath/no-watermarks.pdf");
watermarker.close();

在 Java 中去除超鏈接水印

水印 API 允許從 PDF 文檔中搜索和刪除超鏈接。以下步驟允許從 Java 應用程序中的 PDF 文檔中刪除超鏈接水印。

  • 使用 Watermarker 加載 PDF 文件。
  • 使用搜索將 可能的水印 作為集合獲取。
  • 遍歷集合併刪除符合條件的水印。
  • 保存更新後的 PDF,上面不再有水印。

以下 Java 代碼示例顯示瞭如何從 PDF 文檔中查找和刪除具有特定 URL 的超鏈接水印。

// 在 Java 中去除 PDF 中的超鏈接水印
Watermarker watermarker = new Watermarker("path/watermark-document.pdf");

PossibleWatermarkCollection watermarks = watermarker.search(new TextSearchCriteria(Pattern.compile("someurl.com")));
for (int i = 0 ; i < watermarks.getCount(); i++)
{
    if (HyperlinkPossibleWatermark.class.isInstance(watermarks.get_Item(i)))
    {
        System.out.println(watermarks.get_Item(i).getText());
        watermarks.removeAt(i);
    }
}
watermarker.save("path/no-hyperlink-watermarks.pdf");

使用 Java 中的特定文本格式從 PDF 中刪除水印

還可以去除具有特定文本格式的水印。您可以提供字體名稱、大小、顏色等作為搜索條件。 API 將找到具有匹配屬性的水印。以下步驟演示瞭如何在 Java 中搜索和刪除具有特定文本格式的 PDF 文件中的水印。

  • 使用 Watermarker 加載 PDF 文件。
  • 使用 TextFormattingSearchCriteria 設置搜索條件。
  • 提供所有必需的格式屬性。
  • 通過提供定義的條件搜索並獲取所有可能的水印 作為一個集合。
  • 使用 clear() 方法刪除所有搜索到的水印。
  • 使用定義的屬性保存沒有水印的更新 PDF。

以下 Java 代碼刪除具有指定文本格式的 PDF 文檔中的水印。

// 從 Java 中的 PDF 中刪除具有特定文本格式的水印
Watermarker watermarker = new Watermarker("path/watermarks.pdf");

TextFormattingSearchCriteria criteria = new TextFormattingSearchCriteria();
criteria.setForegroundColorRange(new ColorRange());
criteria.getForegroundColorRange().setMinHue(-5);
criteria.getForegroundColorRange().setMaxHue(10);
criteria.getForegroundColorRange().setMinBrightness(0.01f);
criteria.getForegroundColorRange().setMaxBrightness(0.99f);
criteria.setBackgroundColorRange(new ColorRange());
criteria.getBackgroundColorRange().setEmpty(true);
criteria.setFontName("Arial");
criteria.setMinFontSize(19);
criteria.setMaxFontSize(42);
criteria.setFontBold(true);

PossibleWatermarkCollection watermarks = watermarker.search(criteria);
watermarks.clear();
watermarker.save("path/removed-watermarks.pdf");
watermarker.close();

結論

綜上所述,我們學習了用 Java 從 PDF 文檔中去除不同水印的方法。我們專門刪除了所有應用的水印,然後刪除了超鏈接水印和具有特定文本格式的水印。嘗試構建您自己的 Java 應用程序來查找和刪除 PDF 文檔中的水印。此外,您可以從其文檔了解更多關於GroupDocs.Watermark for Java的信息。如有疑問,請通過論壇 聯繫我們。

也可以看看