水印 用于保护 PDF 文档或声明其所有权。此外,在各种情况下,会添加水印以显示 PDF 文档的状态,例如草稿、手稿等。为了自动添加水印,本文介绍了如何使用 Java 将文本或图像水印添加到 PDF 中。
Java API 为 PDF 添加水印
为了给 PDF 文档添加水印,我们将使用 Aspose.PDF for Java。它是一个功能丰富的 API,用于在 Java 应用程序中创建、处理和转换 PDF 文件。您可以下载 API 的 JAR 或使用以下 Maven 配置安装它。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>21.6</version>
</dependency>
在 Java 中将文本水印添加到 PDF
以下是使用 Java 向 PDF 添加文本水印的步骤。
- 使用 Document 类加载 PDF。
- 创建 FormattedText 类的实例并设置水印文本及其属性。
- 创建 WatermarkArtifact 类的实例。
- 将文本添加到工件并设置属性,例如对齐方式、旋转角度、不透明度、背景等。
- 使用 Document.getPages().getItem(index).getArtifacts().add(WatermarkArtifact) 方法将文本水印添加到 PDF 的所需页面。
- 使用 Document.save(String) 方法保存更新的 PDF 文档。
以下代码示例展示了如何向 PDF 文档添加文本水印。
// 加载 PDF 文档
Document doc = new Document("input.pdf");
// 创建格式化文本
FormattedText formattedText = new FormattedText("Confidential Document", java.awt.Color.RED, FontStyle.Courier, EncodingType.Identity_h, true, 40.0F);
// 创建水印工件并设置其属性
WatermarkArtifact artifact = new WatermarkArtifact();
artifact.setText(formattedText);
artifact.setArtifactHorizontalAlignment (HorizontalAlignment.Center);
artifact.setArtifactVerticalAlignment (VerticalAlignment.Center);
artifact.setRotation (25);
artifact.setOpacity (0.5);
artifact.setBackground (false);
// 在 PDF 的第一页添加水印
doc.getPages().get_Item(1).getArtifacts().add(artifact);
// 保存带水印的 PDF 文档
doc.save("watermark.pdf");
输出
以下是带水印的PDF的截图。
在 Java 中将图像水印添加到 PDF
以下是使用 Java 将图像水印添加到 PDF 的步骤。
- 使用 Document 类加载 PDF。
- 创建 BackgroundArtifact 类的实例并设置其背景图像和其他属性。
- 使用 Document.getPages().getItem(index).getArtifacts().add(BackgroundArtifact) 方法将图像水印添加到所需的 PDF 页面。
- 使用 Document.save(String) 方法保存更新的 PDF 文档。
以下代码示例展示了如何将图像水印添加到 PDF 文档。
// 加载 PDF 文档
Document doc = new Document("input.pdf");
// 创建背景工件
BackgroundArtifact background = new BackgroundArtifact();
// 指定背景工件对象的图像
background.setBackgroundImage(new FileInputStream("logo.png"));
background.setOpacity(0.5);
background.setArtifactHorizontalAlignment(HorizontalAlignment.Center);
background.setArtifactVerticalAlignment(VerticalAlignment.Center);
// 在 PDF 的第一页添加水印
doc.getPages().get_Item(1).getArtifacts().add(background);
// 保存带水印的 PDF 文档
doc.save("watermark.pdf");
输出
以下是带水印的PDF的截图。
获取免费 API 许可证
您可以 获得临时许可证 以便在没有评估限制的情况下使用 API。
结论
在本文中,您学习了如何使用 Java 向 PDF 添加文本或图像水印。此外,您还了解了如何使用不同的属性自定义水印的外观。您可以使用 文档 了解有关 Java PDF API 的更多信息。如果您有任何问题,请通过我们的 论坛 告诉我们。