Search code examples
javaapache-poixslf

How to create PPTX when using POI XSLF?


When I create a PPTX with POI XSLF I get a blank slide:

XMLSlideShow ppt = new XMLSlideShow();
XSLFSlide slide = ppt.createSlide();
XSLFTextBox shape = slide.createTextBox();
XSLFTextParagraph p = shape.addNewTextParagraph();
XSLFTextRun r1 = p.addNewTextRun();
r1.setText("the");
r1.setFontColor(Color.blue);
r1.setFontSize(24);

OutputStream out = new FileOutputStream("d:/font.pptx");
ppt.write(out);
out.close();

Why is the slide blank without any text?


Solution

  • Your text box has no anchor (position and size).

    You can check the examples of POI how to add a text box: XSLF Examples - Tutorial 6

    XSLFTextBox shape = slide.createTextBox();
    shape.setAnchor(new Rectangle(x, y, width, height));