Search in sources :

Example 6 with CTTextParagraphProperties

use of org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraphProperties in project poi by apache.

the class XSLFTextParagraph method setBulletCharacter.

public void setBulletCharacter(String str) {
    CTTextParagraphProperties pr = _p.isSetPPr() ? _p.getPPr() : _p.addNewPPr();
    CTTextCharBullet c = pr.isSetBuChar() ? pr.getBuChar() : pr.addNewBuChar();
    c.setChar(str);
}
Also used : CTTextParagraphProperties(org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraphProperties) CTTextCharBullet(org.openxmlformats.schemas.drawingml.x2006.main.CTTextCharBullet)

Example 7 with CTTextParagraphProperties

use of org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraphProperties in project poi by apache.

the class XSLFTextParagraph method setBulletFont.

public void setBulletFont(String typeface) {
    CTTextParagraphProperties pr = _p.isSetPPr() ? _p.getPPr() : _p.addNewPPr();
    CTTextFont font = pr.isSetBuFont() ? pr.getBuFont() : pr.addNewBuFont();
    font.setTypeface(typeface);
}
Also used : CTTextFont(org.openxmlformats.schemas.drawingml.x2006.main.CTTextFont) CTTextParagraphProperties(org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraphProperties)

Example 8 with CTTextParagraphProperties

use of org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraphProperties in project poi by apache.

the class XSLFTextParagraph method setBulletFontSize.

/**
     * Sets the bullet size that is to be used within a paragraph.
     * This may be specified in two different ways, percentage spacing and font point spacing:
     * <p>
     * If bulletSize >= 0, then bulletSize is a percentage of the font size.
     * If bulletSize < 0, then it specifies the size in points
     * </p>
     */
public void setBulletFontSize(double bulletSize) {
    CTTextParagraphProperties pr = _p.isSetPPr() ? _p.getPPr() : _p.addNewPPr();
    if (bulletSize >= 0) {
        CTTextBulletSizePercent pt = pr.isSetBuSzPct() ? pr.getBuSzPct() : pr.addNewBuSzPct();
        pt.setVal((int) (bulletSize * 1000));
        if (pr.isSetBuSzPts())
            pr.unsetBuSzPts();
    } else {
        CTTextBulletSizePoint pt = pr.isSetBuSzPts() ? pr.getBuSzPts() : pr.addNewBuSzPts();
        pt.setVal((int) (-bulletSize * 100));
        if (pr.isSetBuSzPct())
            pr.unsetBuSzPct();
    }
}
Also used : CTTextBulletSizePercent(org.openxmlformats.schemas.drawingml.x2006.main.CTTextBulletSizePercent) CTTextParagraphProperties(org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraphProperties) CTTextBulletSizePoint(org.openxmlformats.schemas.drawingml.x2006.main.CTTextBulletSizePoint)

Example 9 with CTTextParagraphProperties

use of org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraphProperties in project poi by apache.

the class XSLFTextParagraph method setIndentLevel.

@Override
public void setIndentLevel(int level) {
    CTTextParagraphProperties pr = _p.isSetPPr() ? _p.getPPr() : _p.addNewPPr();
    pr.setLvl(level);
}
Also used : CTTextParagraphProperties(org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraphProperties)

Example 10 with CTTextParagraphProperties

use of org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraphProperties in project poi by apache.

the class TestXSLFTextShape method testBodyStyles.

@Test
public void testBodyStyles() throws IOException {
    XMLSlideShow ppt = new XMLSlideShow();
    XSLFSlideMaster master = ppt.getSlideMasters().get(0);
    XSLFTheme theme = master.getTheme();
    XSLFSlideLayout layout = master.getLayout(SlideLayout.TITLE_AND_CONTENT);
    XSLFSlide slide = ppt.createSlide(layout);
    assertSame(layout, slide.getSlideLayout());
    assertSame(master, slide.getSlideMaster());
    XSLFTextShape tx1 = slide.getPlaceholder(1);
    tx1.clearText();
    XSLFTextParagraph p1 = tx1.addNewTextParagraph();
    assertEquals(0, p1.getIndentLevel());
    XSLFTextRun r1 = p1.addNewTextRun();
    r1.setText("Apache POI");
    XSLFTextParagraph p2 = tx1.addNewTextParagraph();
    p2.setIndentLevel(1);
    assertEquals(1, p2.getIndentLevel());
    XSLFTextRun r2 = p2.addNewTextRun();
    r2.setText("HSLF");
    XSLFTextParagraph p3 = tx1.addNewTextParagraph();
    p3.setIndentLevel(2);
    assertEquals(2, p3.getIndentLevel());
    XSLFTextRun r3 = p3.addNewTextRun();
    r3.setText("XSLF");
    // level 1 : default title style on the master slide
    // /p:sldMaster/p:txStyles/p:bodyStyle/a:lvl1pPr
    CTTextParagraphProperties lv1PPr = master.getXmlObject().getTxStyles().getBodyStyle().getLvl1PPr();
    CTTextCharacterProperties lv1CPr = lv1PPr.getDefRPr();
    CTTextParagraphProperties lv2PPr = master.getXmlObject().getTxStyles().getBodyStyle().getLvl2PPr();
    CTTextCharacterProperties lv2CPr = lv2PPr.getDefRPr();
    CTTextParagraphProperties lv3PPr = master.getXmlObject().getTxStyles().getBodyStyle().getLvl3PPr();
    CTTextCharacterProperties lv3CPr = lv3PPr.getDefRPr();
    // lv1
    assertEquals(3200, lv1CPr.getSz());
    assertEquals(32.0, r1.getFontSize(), 0);
    assertEquals("+mn-lt", lv1CPr.getLatin().getTypeface());
    assertEquals("Calibri", theme.getMinorFont());
    assertEquals("Calibri", r1.getFontFamily());
    lv1CPr.setSz(3300);
    assertEquals(33.0, r1.getFontSize(), 0);
    lv1CPr.getLatin().setTypeface("Arial");
    assertEquals("Arial", r1.getFontFamily());
    assertEquals(STTextAlignType.L, lv1PPr.getAlgn());
    assertEquals(TextAlign.LEFT, p1.getTextAlign());
    lv1PPr.setAlgn(STTextAlignType.R);
    assertEquals(TextAlign.RIGHT, p1.getTextAlign());
    //lv2
    assertEquals(2800, lv2CPr.getSz());
    assertEquals(28.0, r2.getFontSize(), 0);
    lv2CPr.setSz(3300);
    assertEquals(33.0, r2.getFontSize(), 0);
    lv2CPr.getLatin().setTypeface("Times");
    assertEquals("Times", r2.getFontFamily());
    assertEquals(STTextAlignType.L, lv2PPr.getAlgn());
    assertEquals(TextAlign.LEFT, p2.getTextAlign());
    lv2PPr.setAlgn(STTextAlignType.R);
    assertEquals(TextAlign.RIGHT, p2.getTextAlign());
    //lv3
    assertEquals(2400, lv3CPr.getSz());
    assertEquals(24.0, r3.getFontSize(), 0);
    lv3CPr.setSz(2500);
    assertEquals(25.0, r3.getFontSize(), 0);
    lv3CPr.getLatin().setTypeface("Courier New");
    assertEquals("Courier New", r3.getFontFamily());
    assertEquals(STTextAlignType.L, lv3PPr.getAlgn());
    assertEquals(TextAlign.LEFT, p3.getTextAlign());
    lv3PPr.setAlgn(STTextAlignType.R);
    assertEquals(TextAlign.RIGHT, p3.getTextAlign());
    // level 2: body placeholder on the master slide
    // /p:sldMaster/p:cSld/p:spTree/p:sp/p:nvPr/p:ph[@type="body"]
    XSLFTextShape tx2 = master.getPlaceholder(1);
    assertEquals(Placeholder.BODY, tx2.getTextType());
    lv1PPr = tx2.getTextBody(true).getLstStyle().addNewLvl1PPr();
    lv1CPr = lv1PPr.addNewDefRPr();
    lv2PPr = tx2.getTextBody(true).getLstStyle().addNewLvl2PPr();
    lv2CPr = lv2PPr.addNewDefRPr();
    lv3PPr = tx2.getTextBody(true).getLstStyle().addNewLvl3PPr();
    lv3CPr = lv3PPr.addNewDefRPr();
    lv1CPr.setSz(3300);
    assertEquals(33.0, r1.getFontSize(), 0);
    lv1CPr.addNewLatin().setTypeface("Times");
    assertEquals("Times", r1.getFontFamily());
    lv1PPr.setAlgn(STTextAlignType.L);
    assertEquals(TextAlign.LEFT, p1.getTextAlign());
    lv2CPr.setSz(3300);
    assertEquals(33.0, r2.getFontSize(), 0);
    lv2CPr.addNewLatin().setTypeface("Times");
    assertEquals("Times", r2.getFontFamily());
    lv2PPr.setAlgn(STTextAlignType.L);
    assertEquals(TextAlign.LEFT, p2.getTextAlign());
    lv3CPr.setSz(3300);
    assertEquals(33.0, r3.getFontSize(), 0);
    lv3CPr.addNewLatin().setTypeface("Times");
    assertEquals("Times", r3.getFontFamily());
    lv3PPr.setAlgn(STTextAlignType.L);
    assertEquals(TextAlign.LEFT, p3.getTextAlign());
    // level 3: body placeholder on the slide layout
    // /p:sldLayout /p:cSld/p:spTree/p:sp/p:nvPr/p:ph[@type="ctrTitle"]
    XSLFTextShape tx3 = layout.getPlaceholder(1);
    assertEquals(Placeholder.BODY, tx2.getTextType());
    lv1PPr = tx3.getTextBody(true).getLstStyle().addNewLvl1PPr();
    lv1CPr = lv1PPr.addNewDefRPr();
    lv2PPr = tx3.getTextBody(true).getLstStyle().addNewLvl2PPr();
    lv2CPr = lv2PPr.addNewDefRPr();
    lv3PPr = tx3.getTextBody(true).getLstStyle().addNewLvl3PPr();
    lv3CPr = lv3PPr.addNewDefRPr();
    lv1CPr.setSz(3400);
    assertEquals(34.0, r1.getFontSize(), 0);
    lv1CPr.addNewLatin().setTypeface("Courier New");
    assertEquals("Courier New", r1.getFontFamily());
    lv1PPr.setAlgn(STTextAlignType.CTR);
    assertEquals(TextAlign.CENTER, p1.getTextAlign());
    lv2CPr.setSz(3400);
    assertEquals(34.0, r2.getFontSize(), 0);
    lv2CPr.addNewLatin().setTypeface("Courier New");
    assertEquals("Courier New", r2.getFontFamily());
    lv2PPr.setAlgn(STTextAlignType.CTR);
    assertEquals(TextAlign.CENTER, p2.getTextAlign());
    lv3CPr.setSz(3400);
    assertEquals(34.0, r3.getFontSize(), 0);
    lv3CPr.addNewLatin().setTypeface("Courier New");
    assertEquals("Courier New", r3.getFontFamily());
    lv3PPr.setAlgn(STTextAlignType.CTR);
    assertEquals(TextAlign.CENTER, p3.getTextAlign());
    // level 4: default text properties in the shape itself
    // ./p:sp/p:txBody/a:lstStyle/a:lvl1pPr
    lv1PPr = tx1.getTextBody(true).getLstStyle().addNewLvl1PPr();
    lv1CPr = lv1PPr.addNewDefRPr();
    lv2PPr = tx1.getTextBody(true).getLstStyle().addNewLvl2PPr();
    lv2CPr = lv2PPr.addNewDefRPr();
    lv3PPr = tx1.getTextBody(true).getLstStyle().addNewLvl3PPr();
    lv3CPr = lv3PPr.addNewDefRPr();
    lv1CPr.setSz(3500);
    assertEquals(35.0, r1.getFontSize(), 0);
    lv1CPr.addNewLatin().setTypeface("Arial");
    assertEquals("Arial", r1.getFontFamily());
    lv1PPr.setAlgn(STTextAlignType.L);
    assertEquals(TextAlign.LEFT, p1.getTextAlign());
    lv2CPr.setSz(3500);
    assertEquals(35.0, r2.getFontSize(), 0);
    lv2CPr.addNewLatin().setTypeface("Arial");
    assertEquals("Arial", r2.getFontFamily());
    lv2PPr.setAlgn(STTextAlignType.L);
    assertEquals(TextAlign.LEFT, p2.getTextAlign());
    lv3CPr.setSz(3500);
    assertEquals(35.0, r3.getFontSize(), 0);
    lv3CPr.addNewLatin().setTypeface("Arial");
    assertEquals("Arial", r3.getFontFamily());
    lv3PPr.setAlgn(STTextAlignType.L);
    assertEquals(TextAlign.LEFT, p3.getTextAlign());
    // level 5: text properties are defined in the text run
    lv1PPr = p1.getXmlObject().isSetPPr() ? p1.getXmlObject().getPPr() : p1.getXmlObject().addNewPPr();
    lv1CPr = r1.getRPr(false);
    lv2PPr = p2.getXmlObject().isSetPPr() ? p2.getXmlObject().getPPr() : p2.getXmlObject().addNewPPr();
    lv2CPr = r2.getRPr(false);
    lv3PPr = p3.getXmlObject().isSetPPr() ? p3.getXmlObject().getPPr() : p3.getXmlObject().addNewPPr();
    lv3CPr = r3.getRPr(false);
    lv1CPr.setSz(3600);
    assertEquals(36.0, r1.getFontSize(), 0);
    lv1CPr.addNewLatin().setTypeface("Calibri");
    assertEquals("Calibri", r1.getFontFamily());
    lv1PPr.setAlgn(STTextAlignType.CTR);
    assertEquals(TextAlign.CENTER, p1.getTextAlign());
    lv2CPr.setSz(3600);
    assertEquals(36.0, r2.getFontSize(), 0);
    lv2CPr.addNewLatin().setTypeface("Calibri");
    assertEquals("Calibri", r2.getFontFamily());
    lv2PPr.setAlgn(STTextAlignType.CTR);
    assertEquals(TextAlign.CENTER, p2.getTextAlign());
    lv3CPr.setSz(3600);
    assertEquals(36.0, r3.getFontSize(), 0);
    lv3CPr.addNewLatin().setTypeface("Calibri");
    assertEquals("Calibri", r3.getFontFamily());
    lv3PPr.setAlgn(STTextAlignType.CTR);
    assertEquals(TextAlign.CENTER, p3.getTextAlign());
    ppt.close();
}
Also used : CTTextCharacterProperties(org.openxmlformats.schemas.drawingml.x2006.main.CTTextCharacterProperties) CTTextParagraphProperties(org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraphProperties) Test(org.junit.Test)

Aggregations

CTTextParagraphProperties (org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraphProperties)22 ParagraphPropertyFetcher (org.apache.poi.xslf.model.ParagraphPropertyFetcher)6 CTTextSpacing (org.openxmlformats.schemas.drawingml.x2006.main.CTTextSpacing)5 CTTextCharacterProperties (org.openxmlformats.schemas.drawingml.x2006.main.CTTextCharacterProperties)4 CTPlaceholder (org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder)3 Color (java.awt.Color)2 SolidPaint (org.apache.poi.sl.usermodel.PaintStyle.SolidPaint)2 Test (org.junit.Test)2 CTColor (org.openxmlformats.schemas.drawingml.x2006.main.CTColor)2 CTSRgbColor (org.openxmlformats.schemas.drawingml.x2006.main.CTSRgbColor)2 CTTextBulletSizePoint (org.openxmlformats.schemas.drawingml.x2006.main.CTTextBulletSizePoint)2 CTTextTabStopList (org.openxmlformats.schemas.drawingml.x2006.main.CTTextTabStopList)2 DrawPaint (org.apache.poi.sl.draw.DrawPaint)1 AutoNumberingScheme (org.apache.poi.sl.usermodel.AutoNumberingScheme)1 XmlCursor (org.apache.xmlbeans.XmlCursor)1 XmlObject (org.apache.xmlbeans.XmlObject)1 CTTextAutonumberBullet (org.openxmlformats.schemas.drawingml.x2006.main.CTTextAutonumberBullet)1 CTTextBulletSizePercent (org.openxmlformats.schemas.drawingml.x2006.main.CTTextBulletSizePercent)1 CTTextCharBullet (org.openxmlformats.schemas.drawingml.x2006.main.CTTextCharBullet)1 CTTextFont (org.openxmlformats.schemas.drawingml.x2006.main.CTTextFont)1