Text Boxes

Add and format text on slides.

Creating a Text Box

using DotnetPoi.XSLF.UserModel;

using var ppt = new XMLSlideShow();
var slide = ppt.createSlide();
var textBox = slide.createTextBox();
textBox.setAnchor(685800, 457200, 7315200, 914400);
// setAnchor(x, y, width, height) — all values in EMU

Adding Text

var paragraph = textBox.addParagraph();
var run = paragraph.addRun("Hello from dotnet-poi!");

Multiple Paragraphs

var titleBox = slide.createTextBox();
titleBox.setAnchor(685800, 457200, 7315200, 914400);
var title = titleBox.addParagraph().addRun("Title");
title.Bold = true;
title.FontSize = 28;

var subtitleBox = slide.createTextBox();
subtitleBox.setAnchor(685800, 1371600, 7315200, 914400);
subtitleBox.addParagraph().addRun("This is a subtitle.");

Run Formatting

var run = paragraph.addRun("Formatted text");
run.Bold = true;
run.Italic = true;
run.FontSize = 24;
run.FontName = "Arial";
run.FontColor = "FF0000";  // hex RGB
run.Underline = true;

Reading Slide Text

var shapes = slide.getAutoShapes();  // returns text boxes
var text = shapes[0].Paragraphs[0].getPlainText();

Full Runnable Example

See examples/Phase33PptxExample/ and examples/UsageSamples/Program.cs (CreatePresentation):

examples/Phase33PptxExample

examples/UsageSamples