Carl Smith
Carl Smith
Read 3 minutes

ДОБАВЛЕНИЕ ТЕКСТОВОГО ВОДЯНОГО ЗНАКА В POWERPOINT НА JAVA

Водяной знак в PowerPoint – это полупрозрачный текст, видимый на слайде. Он используется для обозначения статуса документа (конфиденциальный, черновик и т.д.) или для указания права собственности на документ. Хотя PowerPoint не предоставляет встроенной функции водяного знака, в этой статье мы расскажем, как программно добавить текстовый водяной знак или многострочные водяные знаки на слайд PowerPoint с помощью Free Spire.Presentation for Java.

Конфигурация среды

Метод 1: Загрузите пакет Free Spire.Presentation for Java и распакуйте его, а затем импортируйте пакет jar в папку lib как зависимость непосредственно в приложение Java.

Метод 2: Установите пакет jar через репозиторий Maven, и код для настройки файла pom.xml выглядит следующим образом.

repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>http://repo.e-iceblue.com/nexus/content/groups/public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.presentation.free</artifactId> <version>5.1.0</version> </dependency> </dependencies>

Вставка текстового водяного знака в PowerPoint

import com.spire.presentation.*;
import com.spire.presentation.drawing.FillFormatType;
import java.awt.*;
import java.awt.geom.Rectangle2D;

public class TextWatermark {
public static void main(String[] args) throws Exception {

//Создайте документ PPT и загрузите файл образца
Presentation presentation = new Presentation();
presentation.loadFromFile("input.pptx");

//Установите ширину и высоту строки водяного знака
int width= 400;
int height= 300;
//Определите диапазон прямоугольника
Rectangle2D.Double rect = new Rectangle2D.Double((presentation.getSlideSize().getSize().getWidth() - width) / 2,
(presentation.getSlideSize().getSize().getHeight() - height) / 2, width, height);

//Добавьте прямоугольную форму с заданным диапазоном
IAutoShape shape = presentation.getSlides().get(0).getShapes().appendShape(ShapeType.RECTANGLE, rect);

//Установите стиль формы
shape.getFill().setFillType(FillFormatType.NONE);
shape.getShapeStyle().getLineColor().setColor(Color.white);
shape.setRotation(-45);
shape.getLocking().setSelectionProtection(true);
shape.getLine().setFillType(FillFormatType.NONE);


//Добавить текст в форму
shape.getTextFrame().setText("Confidential");
PortionEx textRange = shape.getTextFrame().getTextRange();

//Установите стиль текстового диапазона
textRange.getFill().setFillType(FillFormatType.SOLID);
textRange.getFill().getSolidColor().setColor(new Color(176, 48, 96));
textRange.setFontHeight(50);

//Сохранить документ
presentation.saveToFile("AddTextWatermark.pptx", FileFormat.PPTX_2010);
}

}
Image for post

Добавление многострочных водяных знаков в PowerPoint

import com.spire.pdf.graphics.PdfTrueTypeFont;
import com.spire.presentation.*;
import com.spire.presentation.drawing.FillFormatType;

import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Rectangle2D;

public class AddMultilineWatermarks {

public static void main(String[] args) throws Exception {

//Создайте объект Presentation
Presentation presentation = new Presentation();

//Загрузите образец файла PowerPoint
presentation.loadFromFile("input.pptx");

//Укажите текст водяного знака
String watermarkText = "Draft";

//Получение размера текста водяного знака
Font font = new java.awt.Font("Arial", java.awt.Font.BOLD, 20);
PdfTrueTypeFont trueTypeFont = new PdfTrueTypeFont(font);
Dimension2D strSize = trueTypeFont.measureString(watermarkText);

//Инициализация координат x и y
float x = 30;
float y = 80;

for (int rowNum = 0; rowNum < 4; rowNum++) {
for (int colNum = 0; colNum < 5; colNum++) {

//Добавьте форму прямоугольника
Rectangle2D rect = new Rectangle2D.Float(x, y, (float) strSize.getWidth() + 10, (float) strSize.getHeight());
IAutoShape shape = presentation.getSlides().get(0).getShapes().appendShape(ShapeType.RECTANGLE, rect);

//Установите стиль формы
shape.getFill().setFillType(FillFormatType.NONE);
shape.getShapeStyle().getLineColor().setColor(new Color(1, 1, 1, 0));
shape.setRotation(-45);
shape.getLocking().setSelectionProtection(true);
shape.getLine().setFillType(FillFormatType.NONE);

//Добавьте текст водяного знака на форму
shape.getTextFrame().setText(watermarkText);
PortionEx textRange = shape.getTextFrame().getTextRange();

//Установите стиль текстового диапазона
textRange.getFill().setFillType(FillFormatType.SOLID); textRange.getFill().getSolidColor().setColor(new Color(176, 48, 96));
textRange.setLatinFont(new TextFont(trueTypeFont.getName()));
textRange.setFontMinSize(trueTypeFont.getSize());

x += (100 + strSize.getWidth());

}
x = 30;
y += (100 + strSize.getHeight());
}

//Сохранить документ
presentation.saveToFile("MultilineWatermark.pptx", FileFormat.PPTX_2013);
}
}
Image for post
1 view
Add
More