Search in sources :

Example 6 with CTPlaceholder

use of org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder in project poi by apache.

the class TestXSLFTextShape method verifySlide8.

void verifySlide8(XSLFSlide slide) {
    XSLFSlideLayout layout = slide.getSlideLayout();
    List<XSLFShape> shapes = slide.getShapes();
    assertEquals("Content with Caption", layout.getName());
    XSLFTextShape shape1 = (XSLFTextShape) shapes.get(0);
    CTPlaceholder ph1 = shape1.getCTPlaceholder();
    assertEquals(STPlaceholderType.TITLE, ph1.getType());
    // anchor is not defined in the shape
    assertNull(getSpPr(shape1).getXfrm());
    XSLFTextShape masterShape1 = (XSLFTextShape) layout.getPlaceholder(ph1);
    // layout does not have anchor info either, it is in the slide master
    assertNotNull(getSpPr(masterShape1).getXfrm());
    assertEquals(masterShape1.getAnchor(), shape1.getAnchor());
    CTTextBodyProperties bodyPr1 = shape1.getTextBodyPr();
    // none of the following properties are set in the shapes and fetched from the master shape
    assertTrue(!bodyPr1.isSetLIns() && !bodyPr1.isSetRIns() && !bodyPr1.isSetBIns() && !bodyPr1.isSetTIns() && !bodyPr1.isSetAnchor());
    // 0.1"
    assertEquals(7.2, shape1.getLeftInset(), 0);
    // 0.1"
    assertEquals(7.2, shape1.getRightInset(), 0);
    // 0.05"
    assertEquals(3.6, shape1.getTopInset(), 0);
    // 0.05"
    assertEquals(3.6, shape1.getBottomInset(), 0);
    assertEquals(VerticalAlignment.BOTTOM, shape1.getVerticalAlignment());
    // now check text properties
    assertEquals("Caption", shape1.getText());
    XSLFTextRun r1 = shape1.getTextParagraphs().get(0).getTextRuns().get(0);
    assertEquals(TextAlign.LEFT, r1.getParentParagraph().getTextAlign());
    assertEquals("Calibri", r1.getFontFamily());
    assertEquals(20.0, r1.getFontSize(), 0);
    assertTrue(sameColor(Color.black, r1.getFontColor()));
    assertTrue(r1.isBold());
    XSLFTextShape shape2 = (XSLFTextShape) shapes.get(1);
    CTPlaceholder ph2 = shape2.getCTPlaceholder();
    assertFalse(ph2.isSetType());
    assertTrue(ph2.isSetIdx());
    assertEquals(1, ph2.getIdx());
    // anchor is not defined in the shape
    assertNull(getSpPr(shape2).getXfrm());
    XSLFTextShape masterShape2 = (XSLFTextShape) layout.getPlaceholder(ph2);
    assertNotNull(getSpPr(masterShape2).getXfrm());
    assertEquals(masterShape2.getAnchor(), shape2.getAnchor());
    CTTextBodyProperties bodyPr2 = shape2.getTextBodyPr();
    // none of the following properties are set in the shapes and fetched from the master shape
    assertTrue(!bodyPr2.isSetLIns() && !bodyPr2.isSetRIns() && !bodyPr2.isSetBIns() && !bodyPr2.isSetTIns() && !bodyPr2.isSetAnchor());
    // 0.1"
    assertEquals(7.2, shape2.getLeftInset(), 0);
    // 0.1"
    assertEquals(7.2, shape2.getRightInset(), 0);
    // 0.05"
    assertEquals(3.6, shape2.getTopInset(), 0);
    // 0.05"
    assertEquals(3.6, shape2.getBottomInset(), 0);
    assertEquals(VerticalAlignment.TOP, shape2.getVerticalAlignment());
    XSLFTextRun pr1 = shape2.getTextParagraphs().get(0).getTextRuns().get(0);
    assertEquals(0, pr1.getParentParagraph().getIndentLevel());
    assertEquals("Level 1", pr1.getRawText());
    assertEquals("Calibri", pr1.getFontFamily());
    assertEquals(32.0, pr1.getFontSize(), 0);
    assertEquals(27.0, pr1.getParentParagraph().getLeftMargin(), 0);
    assertEquals("•", pr1.getParentParagraph().getBulletCharacter());
    assertEquals("Arial", pr1.getParentParagraph().getBulletFont());
    XSLFTextRun pr2 = shape2.getTextParagraphs().get(1).getTextRuns().get(0);
    assertEquals(1, pr2.getParentParagraph().getIndentLevel());
    assertEquals("Level 2", pr2.getParentParagraph().getText());
    assertEquals("Calibri", pr2.getFontFamily());
    assertEquals(28.0, pr2.getFontSize(), 0);
    assertEquals(58.5, pr2.getParentParagraph().getLeftMargin(), 0);
    assertEquals("–", pr2.getParentParagraph().getBulletCharacter());
    assertEquals("Arial", pr2.getParentParagraph().getBulletFont());
    XSLFTextRun pr3 = shape2.getTextParagraphs().get(2).getTextRuns().get(0);
    assertEquals(2, pr3.getParentParagraph().getIndentLevel());
    assertEquals("Level 3", pr3.getParentParagraph().getText());
    assertEquals("Calibri", pr3.getFontFamily());
    assertEquals(24.0, pr3.getFontSize(), 0);
    assertEquals(90.0, pr3.getParentParagraph().getLeftMargin(), 0);
    assertEquals("•", pr3.getParentParagraph().getBulletCharacter());
    assertEquals("Arial", pr3.getParentParagraph().getBulletFont());
    XSLFTextRun pr4 = shape2.getTextParagraphs().get(3).getTextRuns().get(0);
    assertEquals(3, pr4.getParentParagraph().getIndentLevel());
    assertEquals("Level 4", pr4.getParentParagraph().getText());
    assertEquals("Calibri", pr4.getFontFamily());
    assertEquals(20.0, pr4.getFontSize(), 0);
    assertEquals(126.0, pr4.getParentParagraph().getLeftMargin(), 0);
    assertEquals("–", pr4.getParentParagraph().getBulletCharacter());
    assertEquals("Arial", pr4.getParentParagraph().getBulletFont());
    XSLFTextShape shape3 = (XSLFTextShape) shapes.get(2);
    assertEquals(VerticalAlignment.TOP, shape3.getVerticalAlignment());
    assertEquals("Content with caption", shape3.getText());
    pr1 = shape3.getTextParagraphs().get(0).getTextRuns().get(0);
    assertEquals(0, pr1.getParentParagraph().getIndentLevel());
    assertEquals("Content with caption", pr1.getRawText());
    assertEquals("Calibri", pr1.getFontFamily());
    assertEquals(14.0, pr1.getFontSize(), 0);
}
Also used : CTPlaceholder(org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder) CTTextBodyProperties(org.openxmlformats.schemas.drawingml.x2006.main.CTTextBodyProperties)

Example 7 with CTPlaceholder

use of org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder in project poi by apache.

the class TestXSLFTextShape method verifySlide1.

void verifySlide1(XSLFSlide slide) {
    XSLFSlideLayout layout = slide.getSlideLayout();
    List<XSLFShape> shapes = slide.getShapes();
    assertEquals("Title Slide", layout.getName());
    XSLFTextShape shape1 = (XSLFTextShape) shapes.get(0);
    CTPlaceholder ph1 = shape1.getCTPlaceholder();
    assertEquals(STPlaceholderType.CTR_TITLE, ph1.getType());
    // anchor is not defined in the shape
    assertNull(getSpPr(shape1).getXfrm());
    XSLFTextShape masterShape1 = (XSLFTextShape) layout.getPlaceholder(ph1);
    assertNotNull(getSpPr(masterShape1).getXfrm());
    assertEquals(masterShape1.getAnchor(), shape1.getAnchor());
    CTTextBodyProperties bodyPr1 = shape1.getTextBodyPr();
    // none of the following properties are set in the shapes and fetched from the master shape
    assertTrue(!bodyPr1.isSetLIns() && !bodyPr1.isSetRIns() && !bodyPr1.isSetBIns() && !bodyPr1.isSetTIns() && !bodyPr1.isSetAnchor());
    // 0.1"
    assertEquals(7.2, shape1.getLeftInset(), 0);
    // 0.1"
    assertEquals(7.2, shape1.getRightInset(), 0);
    // 0.05"
    assertEquals(3.6, shape1.getTopInset(), 0);
    // 0.05"
    assertEquals(3.6, shape1.getBottomInset(), 0);
    assertEquals(VerticalAlignment.MIDDLE, shape1.getVerticalAlignment());
    // now check text properties
    assertEquals("Centered Title", shape1.getText());
    XSLFTextRun r1 = shape1.getTextParagraphs().get(0).getTextRuns().get(0);
    assertEquals("Calibri", r1.getFontFamily());
    assertEquals(44.0, r1.getFontSize(), 0);
    assertTrue(sameColor(Color.black, r1.getFontColor()));
    XSLFTextShape shape2 = (XSLFTextShape) shapes.get(1);
    CTPlaceholder ph2 = shape2.getCTPlaceholder();
    assertEquals(STPlaceholderType.SUB_TITLE, ph2.getType());
    // anchor is not defined in the shape
    assertNull(getSpPr(shape2).getXfrm());
    XSLFTextShape masterShape2 = (XSLFTextShape) layout.getPlaceholder(ph2);
    assertNotNull(getSpPr(masterShape2).getXfrm());
    assertEquals(masterShape2.getAnchor(), shape2.getAnchor());
    CTTextBodyProperties bodyPr2 = shape2.getTextBodyPr();
    // none of the following properties are set in the shapes and fetched from the master shape
    assertTrue(!bodyPr2.isSetLIns() && !bodyPr2.isSetRIns() && !bodyPr2.isSetBIns() && !bodyPr2.isSetTIns() && !bodyPr2.isSetAnchor());
    // 0.1"
    assertEquals(7.2, shape2.getLeftInset(), 0);
    // 0.1"
    assertEquals(7.2, shape2.getRightInset(), 0);
    // 0.05"
    assertEquals(3.6, shape2.getTopInset(), 0);
    // 0.05"
    assertEquals(3.6, shape2.getBottomInset(), 0);
    assertEquals(VerticalAlignment.TOP, shape2.getVerticalAlignment());
    assertEquals("subtitle", shape2.getText());
    XSLFTextRun r2 = shape2.getTextParagraphs().get(0).getTextRuns().get(0);
    assertEquals("Calibri", r2.getFontFamily());
    assertEquals(32.0, r2.getFontSize(), 0);
// TODO fix calculation of tint
//assertEquals(new Color(137, 137, 137), r2.getFontColor());
}
Also used : CTPlaceholder(org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder) CTTextBodyProperties(org.openxmlformats.schemas.drawingml.x2006.main.CTTextBodyProperties)

Example 8 with CTPlaceholder

use of org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder in project poi by apache.

the class XSLFTextParagraph method fetchParagraphProperty.

private <T> boolean fetchParagraphProperty(ParagraphPropertyFetcher<T> visitor) {
    boolean ok = false;
    XSLFTextShape shape = getParentShape();
    XSLFSheet sheet = shape.getSheet();
    if (_p.isSetPPr())
        ok = visitor.fetch(_p.getPPr());
    if (ok)
        return true;
    ok = shape.fetchShapeProperty(visitor);
    if (ok)
        return true;
    CTPlaceholder ph = shape.getCTPlaceholder();
    if (ph == null) {
        // if it is a plain text box then take defaults from presentation.xml
        @SuppressWarnings("resource") XMLSlideShow ppt = sheet.getSlideShow();
        CTTextParagraphProperties themeProps = ppt.getDefaultParagraphStyle(getIndentLevel());
        if (themeProps != null)
            ok = visitor.fetch(themeProps);
    }
    if (ok)
        return true;
    // defaults for placeholders are defined in the slide master
    CTTextParagraphProperties defaultProps = getDefaultMasterStyle();
    // TODO: determine master shape
    if (defaultProps != null)
        ok = visitor.fetch(defaultProps);
    if (ok)
        return true;
    return false;
}
Also used : CTPlaceholder(org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder) CTTextParagraphProperties(org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraphProperties)

Example 9 with CTPlaceholder

use of org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder in project poi by apache.

the class XSLFTextParagraph method isHeaderOrFooter.

@Override
public boolean isHeaderOrFooter() {
    CTPlaceholder ph = _shape.getCTPlaceholder();
    int phId = (ph == null ? -1 : ph.getType().intValue());
    switch(phId) {
        case STPlaceholderType.INT_SLD_NUM:
        case STPlaceholderType.INT_DT:
        case STPlaceholderType.INT_FTR:
        case STPlaceholderType.INT_HDR:
            return true;
        default:
            return false;
    }
}
Also used : CTPlaceholder(org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder) DrawPaint(org.apache.poi.sl.draw.DrawPaint) SolidPaint(org.apache.poi.sl.usermodel.PaintStyle.SolidPaint) CTTextBulletSizePoint(org.openxmlformats.schemas.drawingml.x2006.main.CTTextBulletSizePoint)

Example 10 with CTPlaceholder

use of org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder in project poi by apache.

the class XSLFSlideLayout method canDraw.

/**
     * Render this sheet into the supplied graphics object
     */
@Override
protected boolean canDraw(XSLFShape shape) {
    if (shape instanceof XSLFSimpleShape) {
        XSLFSimpleShape txt = (XSLFSimpleShape) shape;
        CTPlaceholder ph = txt.getCTPlaceholder();
        if (ph != null) {
            return false;
        }
    }
    return true;
}
Also used : CTPlaceholder(org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder)

Aggregations

CTPlaceholder (org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder)15 CTTextBodyProperties (org.openxmlformats.schemas.drawingml.x2006.main.CTTextBodyProperties)6 DrawPaint (org.apache.poi.sl.draw.DrawPaint)3 CTTextParagraphProperties (org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraphProperties)3 SolidPaint (org.apache.poi.sl.usermodel.PaintStyle.SolidPaint)2 CTTextBulletSizePoint (org.openxmlformats.schemas.drawingml.x2006.main.CTTextBulletSizePoint)2 GradientPaint (org.apache.poi.sl.usermodel.PaintStyle.GradientPaint)1 TexturePaint (org.apache.poi.sl.usermodel.PaintStyle.TexturePaint)1 XmlCursor (org.apache.xmlbeans.XmlCursor)1 XmlObject (org.apache.xmlbeans.XmlObject)1 CTTextCharacterProperties (org.openxmlformats.schemas.drawingml.x2006.main.CTTextCharacterProperties)1