Управление шрифтами в презентациях с помощью Java

Управление свойствами шрифта

Для управления свойствами шрифта абзаца с помощью Aspose.Slides for Java:

  1. Создайте экземпляр класса Presentation.
  2. Получите ссылку на слайд, используя его индекс.
  3. Доступ к фигурам типа Placeholder на слайде и приведение их к типу AutoShape.
  4. Получите Paragraph из TextFrame, предоставляемого AutoShape.
  5. Выравнивание абзаца по ширине.
  6. Доступ к Portion текста абзаца.
  7. Определите шрифт с помощью FontData и установите Font у текста Portion соответственно.
    1. Установите шрифт полужирным.
    2. Установите шрифт курсивом.
  8. Установите цвет шрифта с помощью FillFormat, предоставляемого объектом Portion.
  9. Сохраните изменённую презентацию в файл PPTX.

Реализация вышеописанных шагов приведена ниже. Она берёт простую презентацию и форматирует шрифты на одном из слайдов. Скриншоты ниже показывают исходный файл и то, как кодовые фрагменты изменяют его. Код меняет шрифт, цвет и стиль шрифта.

todo:image_alt_text
Рисунок: Текст во входном файле
todo:image_alt_text
Рисунок: Тот же текст с обновлённым форматированием
// Создать объект Presentation, представляющий файл PPTX
Presentation pres = new Presentation("FontProperties.pptx");
try {
	// Доступ к слайду по его позиции
	ISlide slide = pres.getSlides().get_Item(0);

	// Доступ к первому и второму заполнителю на слайде и приведение к типу AutoShape
	ITextFrame tf1 = ((IAutoShape) slide.getShapes().get_Item(0)).getTextFrame();
	ITextFrame tf2 = ((IAutoShape) slide.getShapes().get_Item(1)).getTextFrame();

	// Доступ к первому абзацу
	IParagraph para1 = tf1.getParagraphs().get_Item(0);
	IParagraph para2 = tf2.getParagraphs().get_Item(0);

	// Выравнивание абзаца по ширине
	para2.getParagraphFormat().setAlignment(TextAlignment.JustifyLow);

	// Доступ к первой части
	IPortion port1 = para1.getPortions().get_Item(0);
	IPortion port2 = para2.getPortions().get_Item(0);

	// Определить новые шрифты
	FontData fd1 = new FontData("Elephant");
	FontData fd2 = new FontData("Castellar");

	// Присвоить новые шрифты части
	port1.getPortionFormat().setLatinFont(fd1);
	port2.getPortionFormat().setLatinFont(fd2);

	// Установить шрифт жирным
	port1.getPortionFormat().setFontBold(NullableBool.True);
	port2.getPortionFormat().setFontBold(NullableBool.True);

	// Установить шрифт курсивом
	port1.getPortionFormat().setFontItalic(NullableBool.True);
	port2.getPortionFormat().setFontItalic(NullableBool.True);

	// Установить цвет шрифта
	port1.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
	port1.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
	port2.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
	port2.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.GREEN);

	// Сохранить PPTX на диск
	pres.save("WelcomeFont.pptx", SaveFormat.Pptx);
} finally {
	if (pres != null) pres.dispose();
}

Установка свойств шрифта текста

Для создания текстового поля и установки свойств шрифта текста в нём:

  1. Создайте экземпляр класса Presentation.
  2. Получите ссылку на слайд, используя его индекс.
  3. Добавьте на слайд AutoShape типа Rectangle.
  4. Удалите стиль заливки, связанный с AutoShape.
  5. Доступ к TextFrame у AutoShape.
  6. Добавьте некоторый текст в TextFrame.
  7. Доступ к объекту Portion, связанному с TextFrame.
  8. Определите шрифт, который будет использоваться для Portion.
  9. Установите другие свойства шрифта, такие как полужирный, курсив, подчёркивание, цвет и высота, используя соответствующие свойства, предоставляемые объектом Portion.
  10. Запишите изменённую презентацию в файл PPTX.

Реализация вышеописанных шагов приведена ниже.

todo:image_alt_text
Рисунок: Текст с некоторыми установленными свойствами шрифта, заданными Aspose.Slides for Java
// Создать объект Presentation, представляющий файл PPTX
Presentation pres = new Presentation();
try {
	// Получить первый слайд
	ISlide sld = pres.getSlides().get_Item(0);
	
	// Добавить AutoShape типа Rectangle
	IAutoShape ashp = sld.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 200, 50);
	
	// Удалить любой стиль заливки, связанный с AutoShape
	ashp.getFillFormat().setFillType(FillType.NoFill);
	
	// Получить TextFrame, связанный с AutoShape
	ITextFrame tf = ashp.getTextFrame();
	tf.setText("Aspose TextBox");
	
	// Получить Portion, связанный с TextFrame
	IPortion port = tf.getParagraphs().get_Item(0).getPortions().get_Item(0);
	
	// Установить шрифт для Portion
	port.getPortionFormat().setLatinFont(new FontData("Times New Roman"));
	
	// Установить свойства Bold для шрифта
	port.getPortionFormat().setFontBold(NullableBool.True);
	
	// Установить свойства Italic для шрифта
	port.getPortionFormat().setFontItalic(NullableBool.True);
	
	// Установить свойства Underline для шрифта
	port.getPortionFormat().setFontUnderline(TextUnderlineType.Single);
	
	// Установить высоту шрифта
	port.getPortionFormat().setFontHeight(25);
	
	// Установить цвет шрифта
	port.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
	port.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
	
	// Сохранить презентацию на диск
	pres.save("pptxFont.pptx", SaveFormat.Pptx);
} finally {
	if (pres != null) pres.dispose();
}