Как добавить водяные знаки в файлы PowerPoint на Java

Водяной знак — это выцветшее фоновое изображение , которое отображается за текстом в документе. Водяной знак можно использовать для указания статуса документа (конфиденциальный, черновик и т. д.) или добавить тонкий логотип компании, чтобы усилить брендинг.
В PowerPoint нет встроенной функции водяного знака, как в MS Word, но вы все равно можете добавить фигуру с текстом или изображением, чтобы имитировать эффект водяного знака. В этой статье я собираюсь представить, как вставить текст или изображение водяных знаков в PowerPoint с помощью Spire.Presentation for Java.
- Добавить текстовый водяной знак в PowerPoint в Java
- Добавить изображение водяного знака в PowerPoint в Java
Установите библиотеку
Spire.Presentation for Java — это профессиональная Java-библиотека для чтения, создания и работы с файлами PowerPoint в Java-приложениях.
Если вы создаете проект Maven, вы можете легко импортировать jar в приложение с помощью следующей конфигурации. Для проектов, не использующих Maven, загрузите jar-файл и добавьте его в приложение в качестве зависимости.

Добавить текстовый водяной знак в PowerPoint в Java
Следующий код добавляет прямоугольник с текстом в центр каждого слайда, прямоугольник поворачивается на −45 градусов и становится полупрозрачным. Этот прямоугольник работает как текстовый водяной знак в PowerPoint.
import com.spire.presentation.*;
import com.spire.presentation.drawing.FillFormatType;
import java.awt.*;
import java.awt.geom.Rectangle2D;
public class AddTextWatermark {
public static void main(String[] args) throws Exception {
// Загрузить образец файла
Presentation presentation = new Presentation();
presentation.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pptx");
// Добавить текстовый водяной знак на каждый слайд
for (int i = 0; i < presentation.getSlides().getCount(); i++) {
addTextWatermark(presentation.getSlides().get(i), «Только для внутреннего использования»);
}
// Сохранить документ
presentation.saveToFile("TextWatermark.pptx", FileFormat.PPTX_2013);
}
private static void addTextWatermark(ISlide slide, String text) throws Exception {
// Определить прямоугольник
int width = 300;
int height = 30;
Presentation presentation = slide.getPresentation();
Rectangle2D.Double rect = new Rectangle2D.Double((presentation.getSlideSize().getSize().getWidth() - width) / 2,
(presentation.getSlideSize().getSize().getHeight() - height) / 2, width, height);
// Создать фигуру на основе прямоугольника
IAutoShape shape = slide.getShapes().appendShape(ShapeType.RECTANGLE, rect);
// Установить стиль фигуры
shape.getFill().setFillType(FillFormatType.NONE);
shape.setRotation(-45);
shape.getLocking().setSelectionProtection(true);
shape.getLine().setFillType(FillFormatType.NONE);
// Добавить текст в фигуру
shape.getTextFrame().setText(text);
PortionEx textRange = shape.getTextFrame().getTextRange();
// Установить стиль диапазона текста
textRange.getFill().setFillType(FillFormatType.SOLID);
textRange.getFill().getSolidColor().setColor(new Color(50, 50, 50, 65));
textRange.setFontHeight(30);
// Отправить фигуру назад
shape.setShapeArrange(ShapeAlignmentEnum.ShapeArrange.SendToBack);
}
}
Добавить изображение водяного знака в PowerPoint в Java
Следующий код добавляет прямоугольник с изображением в центр каждого слайда, прямоугольник поворачивается на −45 градусов и делается полупрозрачным. Этот прямоугольник функционирует как водяной знак изображения в PowerPoint.
import com.spire.presentation.*;
import com.spire.presentation.drawing.FillFormatType;
import com.spire.presentation.drawing.IImageData;
import com.spire.presentation.drawing.PictureFillType;
import javax.imageio.ImageIO;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
public class AddmageWatermark {
public static void main(String[] args) throws Exception {
//Create a Presentation instance
Presentation presentation = new Presentation();
//Load a sample PowerPoint file
presentation.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pptx");
//Add image watermark to each slide
for (int i = 0; i < presentation.getSlides().getCount(); i++) {
addImageWatermark(presentation.getSlides().get(i), «C:\\Users\\Administrator\\Desktop\\company-logo.png»);
}
//Save the document
presentation.saveToFile("ImageWatermark.pptx", FileFormat.PPTX_2013);
}
private static void addImageWatermark(ISlide slide, String picUrl) throws Exception {
//Load an image
BufferedImage bufferedImage = ImageIO.read(new FileInputStream(picUrl));
IImageData imageData = slide.getPresentation().getImages().append(bufferedImage);
//Define a rectangle
int width = imageData.getWidth();
int height = imageData.getHeight();
Presentation presentation = slide.getPresentation();
Rectangle2D.Double rect = new Rectangle2D.Double((presentation.getSlideSize().getSize().getWidth() - width) / 2,
(presentation.getSlideSize().getSize().getHeight() - height) / 2, width, height);
//Create a shape based on the rectangle
IAutoShape shape = slide.getShapes().appendShape(ShapeType.RECTANGLE, rect);
//Fill the shape with picture
shape.getLine().setFillType(FillFormatType.NONE);
shape.getLocking().setSelectionProtection(true);
shape.getFill().setFillType(FillFormatType.PICTURE);
shape.getFill().getPictureFill().setFillType(PictureFillType.STRETCH);
shape.getFill().getPictureFill().getPicture().setEmbedImage(imageData);
//Send the shape to back
shape.setShapeArrange(ShapeAlignmentEnum.ShapeArrange.SendToBack);
}
}
Заключение
В этой статье рассказывается о том, как добавлять текстовые или графические водяные знаки в PowerPoint с помощью Spire.Presentation for Java. Как продвинутая библиотека PowerPoint, она поддерживает множество других функций, таких как:
Печать документов PowerPoint в Java