水印图像或文本用于识别文档的作者或版权信息。您可以检测文档中所有可用的水印,然后将其删除。作为 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 文档中的所有水印:
- 创建 Watermarker 类的实例
- 指定输入 PDF 文件的路径
- 通过调用 search() 方法填充 PossibleWatermarkCollection
- 调用clear()方法去除所有水印
- 保存更新的文件
以下代码示例显示了如何使用 Java 删除 PDF 文档中的所有可用水印。
// 创建实例
Watermarker watermarker = new Watermarker("C:\\Files\\sample.pdf");
// 搜索所有可能的水印
PossibleWatermarkCollection possibleWatermarks = watermarker.search();
// 删除所有找到的水印
possibleWatermarks.clear();
// 保存更新的文件
watermarker.save("C:\\Files\\output.pdf");
watermarker.close();
Watermarker 类有助于在文档中添加、删除和搜索水印。
PossibleWatermarkCollection 类表示在内容中找到的可能水印的集合。
Watermarker 类的 search() 方法搜索文档中所有可能的水印。它将结果集作为 PossibleWatermarkCollection 返回。
使用Java从PDF中去除纯文本水印
按照下面提到的简单步骤,您可以轻松地从 PDF 文档中删除所有纯文本水印:
- 创建 Watermarker 类的实例
- 指定输入 PDF 文件的路径
- 通过调用 search() 方法填充 PossibleWatermarkCollection
- 检查所有可能水印的 getText() 是否不为空或为空
- 然后将索引传递给 removeAt() 方法以将其删除
- 保存更新的文件
以下代码示例显示了如何使用 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();
removeAt() 方法从PossibleWatermarksCollection 中删除指定索引处的项目。
删除具有特定文本格式的水印
您可以按照以下提到的简单步骤从 PDF 文档中删除具有特定格式的文本水印:
- 创建 Watermarker 类的实例
- 指定输入 PDF 文件的路径
- 定义 TextFormattingSearchCriteria
- 通过调用 search() 方法填充 PossibleWatermarkCollection
- 调用clear()方法去除所有找到的水印
- 保存更新的文件
以下代码示例显示了如何使用 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 文档中删除所有仅图像水印:
- 创建 Watermarker 类的实例
- 指定输入 PDF 文件的路径
- 通过调用 search() 方法填充 PossibleWatermarkCollection
- 检查所有可能水印的 getImageData() 是否不为空
- 然后将索引传递给 removeAt() 方法以将其删除
- 保存更新的文件
以下代码示例展示了如何使用 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();
获得免费许可证
您可以通过请求 免费的临时许可证 来试用该 API,而不受评估限制。
结论
在本文中,您学习了如何使用 Java 从 PDF 文档中删除文本或图像水印。此外,您还学习了如何从文档中删除纯文本或纯图像水印。您可以使用 文档 了解有关 Java API 的 GroupDocs.Watermark 的更多信息。如有任何歧义,请随时在 论坛 上与我们联系。