水印通常用於指定所有權或防止未經授權使用文檔。另一方面,它們也用於顯示手稿、草稿等文檔的狀態。在本文中,您將學習如何使用 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 的其他功能。此外,您可以隨時通過我們的 論壇 告訴我們您的疑問。