水印通常用于指定所有权或防止未经授权使用文档。另一方面,它们还用于显示文档的状态,例如手稿、草稿等。在本文中,您将学习如何使用 Java 以编程方式将文本或图像水印添加到 PowerPoint 幻灯片中。
用于向 PowerPoint 幻灯片添加水印的 Java API
为了给 PowerPoint 幻灯片添加水印,我们将使用 Aspose.Slides for Java。它是一个表示操作 API,可让您从 Java 应用程序中创建和操作表示文档。您可以 下载 API 或使用以下 Maven 配置安装它。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-slides</artifactId>
<version>21.7</version>
<classifier>jdk16</classifier>
</dependency>
在 Java 中将文本水印添加到 PowerPoint 幻灯片
以下是使用 Java 向 PowerPoint 幻灯片添加文本水印的步骤。
- 首先,使用 Presentation 类加载 PowerPoint 演示文稿。
- 在 IMasterSlide 对象中获取幻灯片母版的引用。
- 根据呈现的尺寸计算水印的位置。
- 向幻灯片的 Shapes 集合添加一个新的自动形状,并在 IAutoShape 对象中获取它的引用。
- 将文本框架添加到形状并使用 IAutoShape.addTextFrame(string) 方法设置其文本。
- 设置水印的字体大小、颜色和旋转角度。
- 锁定水印以避免删除或修改。
- 最后,使用 Presentation.save(string, SaveFormat) 方法保存更新的 PowerPoint 文件。
下面的代码示例演示如何将文本水印添加到 PowerPoint 幻灯片。
// 打开演示文稿
Presentation pres = new Presentation("presentation.pptx");
try {
// 访问大师
IMasterSlide master = pres.getMasters().get_Item(0);
Point2D.Float center = new Point2D.Float((float) pres.getSlideSize().getSize().getWidth() / 2,
(float) pres.getSlideSize().getSize().getHeight() / 2);
float width = 300;
float height = 300;
float x = (float) center.getX() - width / 2;
float y = (float) center.getY() - height / 2;
// 添加形状
IAutoShape watermarkShape = master.getShapes().addAutoShape(ShapeType.Rectangle, x, y, width, height);
// 设置填充类型
watermarkShape.getFillFormat().setFillType(FillType.NoFill);
watermarkShape.getLineFormat().getFillFormat().setFillType(FillType.NoFill);
// 设置旋转角度
watermarkShape.setRotation(-45);
// 设置文本
ITextFrame watermarkTextFrame = watermarkShape.addTextFrame("Watermark");
// 设置字体和颜色
IPortion watermarkPortion = watermarkTextFrame.getParagraphs().get_Item(0).getPortions().get_Item(0);
watermarkPortion.getPortionFormat().setFontHeight(52);
int alpha = 150, red = 200, green = 200, blue = 200;
watermarkPortion.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
watermarkPortion.getPortionFormat().getFillFormat().getSolidFillColor()
.setColor(new Color(red, green, blue, alpha));
// 从修改中锁定形状
watermarkShape.getAutoShapeLock().setSelectLocked(true);
watermarkShape.getAutoShapeLock().setSizeLocked(true);
watermarkShape.getAutoShapeLock().setTextLocked(true);
watermarkShape.getAutoShapeLock().setPositionLocked(true);
watermarkShape.getAutoShapeLock().setGroupingLocked(true);
// 保存演示文稿
pres.save("watermarked-presentation.pptx", SaveFormat.Pptx);
} finally {
if (pres != null)
pres.dispose();
}
输出
以下是添加水印后的 PowerPoint 幻灯片截图。
在 Java 中为 PPT 幻灯片添加图像水印
以下是在Java中为PPT幻灯片添加图像水印的步骤。
- 首先,使用 Presentation 类加载 PowerPoint 演示文稿。
- 在 IMasterSlide 对象中获取幻灯片母版的引用。
- 根据呈现的尺寸计算水印的位置。
- 向幻灯片的 Shapes 集合添加一个新的自动形状,并在 IAutoShape 对象中获取它的引用。
- 将图像添加到演示文稿并在 IPPImage 对象中获取其引用。
- 将 IAutoShape 的填充类型设置为 FillType.Picture。
- 使用 IAutoShape.getFillFormat().getPictureFillFormat().getPicture().setImage(IPPImage) 方法设置水印图像。
- 锁定水印以避免删除或修改。
- 最后,使用 Presentation.save(string, SaveFormat) 方法保存更新的 PowerPoint 文件。
以下代码示例演示如何将图像水印添加到 PowerPoint 幻灯片。
// 打开演示文稿
Presentation pres = new Presentation("presentation.pptx");
try {
// 访问幻灯片母版
IMasterSlide master = pres.getMasters().get_Item(0);
Point2D.Float center = new Point2D.Float((float) pres.getSlideSize().getSize().getWidth() / 2,
(float) pres.getSlideSize().getSize().getHeight() / 2);
float width = 300;
float height = 300;
float x = (float) center.getX() - width / 2;
float y = (float) center.getY() - height / 2;
// 添加形状
IAutoShape watermarkShape = master.getShapes().addAutoShape(ShapeType.Rectangle, x, y, width, height);
IPPImage image = pres.getImages().addImage(Files.readAllBytes(Paths.get("watermark.png")));
// 设置填充类型
watermarkShape.getFillFormat().setFillType(FillType.Picture);
watermarkShape.getFillFormat().getPictureFillFormat().getPicture().setImage(image);
watermarkShape.getFillFormat().getPictureFillFormat().setPictureFillMode(PictureFillMode.Stretch);
watermarkShape.getLineFormat().getFillFormat().setFillType(FillType.NoFill);
// 从修改中锁定形状
watermarkShape.getAutoShapeLock().setSelectLocked(true);
watermarkShape.getAutoShapeLock().setSizeLocked(true);
watermarkShape.getAutoShapeLock().setTextLocked(true);
watermarkShape.getAutoShapeLock().setPositionLocked(true);
watermarkShape.getAutoShapeLock().setGroupingLocked(true);
// 保存演示文稿
pres.save("watermarked-presentation-image.pptx", SaveFormat.Pptx);
} finally {
if (pres != null)
pres.dispose();
}
以下是添加图片水印后的演示截图。
用于 PowerPoint 的 Java Watermarking API - 获取免费许可证
您可以通过请求 临时许可 来使用 Aspose.Slides for Java,而不受评估限制。
在线试用
尝试使用 Aspose.Slides 开发的以下在线水印工具。
结论
在本文中,您学习了如何使用 Java 为 PowerPoint 幻灯片添加水印。分步指南和代码示例演示了如何将文本和图像水印添加到 PowerPoint 演示文稿。此外,您可以查阅 文档 以探索 API 的其他功能。此外,您可以随时通过我们的 论坛 告诉我们您的疑问。