使用 Java 从 PDF 文档中删除水印

水印图像或文本用于识别文档的作者或版权信息。您可以检测文档中所有可用的水印,然后将其删除。作为 Java 开发人员,您可以轻松地以编程方式从文档中删除水印。在本文中,您将学习如何使用 Java 去除 PDF 文档中的水印

本文讨论/涵盖了以下主题:

用于去除水印的 Java API

我将使用 GroupDocs.Watermark for Java API 从 PDF 文档中删除水印。它允许执行图像和文本水印操作。它还使您能够应用新水印、搜索和删除支持格式的文件(如 Word、Excel、Powerpoint 和 PDF)中的现有水印。

您可以 下载 API 的 JAR 或在基于 Maven 的 Java 应用程序中添加以下 pom.xml 配置来尝试以下代码示例。

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

使用Java从PDF中删除所有水印

您可以按照以下提到的简单步骤轻松删除 PDF 文档中的所有水印:

以下代码示例显示了如何使用 Java 删除 PDF 文档中的所有可用水印。

// 创建实例
Watermarker watermarker = new Watermarker("C:\\Files\\sample.pdf");

// 搜索所有可能的水印
PossibleWatermarkCollection possibleWatermarks = watermarker.search();

// 删除所有找到的水印
possibleWatermarks.clear();

// 保存更新的文件
watermarker.save("C:\\Files\\output.pdf");

watermarker.close();
使用Java从PDF中删除所有水印

使用Java从PDF中删除所有水印

Watermarker 类有助于在文档中添加、删除和搜索水印。

PossibleWatermarkCollection 类表示在内容中找到的可能水印的集合。

Watermarker 类的 search() 方法搜索文档中所有可能的水印。它将结果集作为 PossibleWatermarkCollection 返回。

使用Java从PDF中去除纯文本水印

按照下面提到的简单步骤,您可以轻松地从 PDF 文档中删除所有纯文本水印:

以下代码示例显示了如何使用 Java 仅删除 PDF 文档中可用的文本水印。

// 创建实例
Watermarker watermarker = new Watermarker("C:\\Files\\sample.pdf");

// 搜索所有可能的水印
PossibleWatermarkCollection possibleWatermarks = watermarker.search();

// 删除所有找到的水印
for (int i = possibleWatermarks.getCount() - 1; i >= 0; i--)
{
  if(possibleWatermarks.get_Item(i).getText() != null && possibleWatermarks.get_Item(i).getText() != "")
  {
    possibleWatermarks.removeAt(i);
  }
}

// 保存更新的文档
watermarker.save("C:\\Files\\output.pdf");

watermarker.close();
使用Java从PDF中去除纯文本水印

使用Java从PDF中去除纯文本水印

removeAt() 方法从 PossibleWatermarksCollection 中移除指定索引处的项目。

删除具有特定文本格式的水印

您可以按照以下提到的简单步骤从 PDF 文档中删除具有特定格式的文本水印:

以下代码示例显示了如何使用 Java 从 PDF 文档中删除具有特定文本格式的文本水印。

// 创建实例
Watermarker watermarker = new Watermarker("C:\\Files\\sample.pdf");

// 定义文本格式搜索条件
TextFormattingSearchCriteria criteria = new TextFormattingSearchCriteria();
criteria.setFontName("Arial");
criteria.setMinFontSize(19);
criteria.setMaxFontSize(42);
criteria.setFontBold(false);

// 搜索可能的水印
PossibleWatermarkCollection watermarks = watermarker.search(criteria);
watermarks.clear();

// 保存更新的文档
watermarker.save("C:\\Files\\output.pdf");

watermarker.close();
删除具有特定文本格式的水印

删除具有特定文本格式的水印

使用Java从PDF中去除仅图像水印

按照下面提到的简单步骤,您可以轻松地从 PDF 文档中删除所有仅图像水印:

以下代码示例显示了如何使用 Java 仅删除 PDF 文档中可用的图像水印。

// 创建实例
Watermarker watermarker = new Watermarker("C:\\Files\\sample.pdf");

// 搜索所有可能的水印
PossibleWatermarkCollection possibleWatermarks = watermarker.search();

// 删除所有图像水印
for (int i = possibleWatermarks.getCount() - 1; i >= 0; i--)
{
  if(possibleWatermarks.get_Item(i).getImageData() != null)
  {
    possibleWatermarks.removeAt(i);
  }
}

// 保存更新的文档
watermarker.save("C:\\Files\\output.pdf");

watermarker.close();
使用Java从PDF中去除仅图像水印

使用Java从PDF中去除仅图像水印

获得免费许可证

您可以通过请求 免费的临时许可证 来试用该 API,而不受评估限制。

结论

在本文中,您学习了如何使用 Java 从 PDF 文档中删除文本或图像水印。此外,您还学习了如何从文档中删除纯文本或纯图像水印。您可以使用 文档 了解有关 Java API 的 GroupDocs.Watermark 的更多信息。如有任何歧义,请随时在 论坛 上与我们联系。

也可以看看