aboutsummaryrefslogtreecommitdiffstats
path: root/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTextShape.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTextShape.java')
-rw-r--r--src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTextShape.java964
1 files changed, 0 insertions, 964 deletions
diff --git a/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTextShape.java b/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTextShape.java
deleted file mode 100644
index 372e0216f4..0000000000
--- a/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTextShape.java
+++ /dev/null
@@ -1,964 +0,0 @@
-/* ====================================================================
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-==================================================================== */
-package org.apache.poi.xslf.usermodel;
-
-import static org.apache.poi.sl.usermodel.BaseTestSlideShow.getColor;
-import static org.apache.poi.xslf.usermodel.TestXSLFSimpleShape.getSpPr;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertSame;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assumptions.assumeFalse;
-
-import java.awt.Color;
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import org.apache.poi.POIDataSamples;
-import org.apache.poi.sl.usermodel.Placeholder;
-import org.apache.poi.sl.usermodel.Shape;
-import org.apache.poi.sl.usermodel.SlideShow;
-import org.apache.poi.sl.usermodel.SlideShowFactory;
-import org.apache.poi.sl.usermodel.TextParagraph.TextAlign;
-import org.apache.poi.sl.usermodel.VerticalAlignment;
-import org.apache.poi.xddf.usermodel.text.XDDFBodyProperties;
-import org.apache.poi.xddf.usermodel.text.XDDFTextBody;
-import org.apache.poi.xddf.usermodel.text.XDDFTextParagraph;
-import org.apache.poi.xslf.XSLFTestDataSamples;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextBodyProperties;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextCharacterProperties;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraphProperties;
-import org.openxmlformats.schemas.drawingml.x2006.main.STTextAlignType;
-import org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder;
-import org.openxmlformats.schemas.presentationml.x2006.main.STPlaceholderType;
-
-class TestXSLFTextShape {
- private static boolean xslfOnly;
-
- @BeforeAll
- public static void checkHslf() {
- try {
- Class.forName("org.apache.poi.hslf.usermodel.HSLFSlideShow");
- } catch (Exception e) {
- xslfOnly = true;
- }
- }
-
- @Test
- void testLayouts() throws IOException {
- XMLSlideShow ppt = XSLFTestDataSamples.openSampleDocument("layouts.pptx");
-
- List<XSLFSlide> slide = ppt.getSlides();
-
- verifySlide1(slide.get(0));
- verifySlide2(slide.get(1));
- verifySlide3(slide.get(2));
- verifySlide4(slide.get(3));
- verifySlide7(slide.get(6));
- verifySlide8(slide.get(7));
- verifySlide10(slide.get(9));
-
- ppt.close();
- }
-
- void verifySlide1(XSLFSlide slide){
- XSLFSlideLayout layout = slide.getSlideLayout();
- List<XSLFShape> shapes = slide.getShapes();
- assertEquals("Title Slide",layout.getName());
-
- XSLFTextShape shape1 = (XSLFTextShape)shapes.get(0);
- XDDFTextBody tb1 = shape1.getTextBody();
- XDDFBodyProperties tbp1 = tb1.getBodyProperties();
- CTPlaceholder ph1 = shape1.getPlaceholderDetails().getCTPlaceholder(false);
- 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()
- );
- assertEquals(7.2, shape1.getLeftInset(), 0); // 0.1"
- assertEquals(7.2, shape1.getRightInset(), 0); // 0.1"
- assertEquals(3.6, shape1.getTopInset(), 0); // 0.05"
- assertEquals(3.6, shape1.getBottomInset(), 0); // 0.05"
- assertEquals(VerticalAlignment.MIDDLE, shape1.getVerticalAlignment());
- assertNull(tbp1.getLeftInset());
- assertNull(tbp1.getRightInset());
- assertNull(tbp1.getBottomInset());
- assertNull(tbp1.getTopInset());
- assertNull(tbp1.getAnchoring());
-
- // now check text properties
- assertEquals("Centered Title", shape1.getText());
- assertEquals("Centered Title",
- tb1.getParagraphs().stream().map(XDDFTextParagraph::getText).collect(Collectors.joining("\n")));
- XSLFTextRun r1 = shape1.getTextParagraphs().get(0).getTextRuns().get(0);
- assertEquals("Calibri", r1.getFontFamily());
- assertEquals(44.0, r1.getFontSize(), 0);
- assertEquals(Color.black, getColor(r1.getFontColor()));
-
- XSLFTextShape shape2 = (XSLFTextShape)shapes.get(1);
- XDDFTextBody tb2 = shape2.getTextBody();
- XDDFBodyProperties tbp2 = tb2.getBodyProperties();
- CTPlaceholder ph2 = shape2.getPlaceholderDetails().getCTPlaceholder(false);
- 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()
- );
- assertEquals(7.2, shape2.getLeftInset(), 0); // 0.1"
- assertEquals(7.2, shape2.getRightInset(), 0); // 0.1"
- assertEquals(3.6, shape2.getTopInset(), 0); // 0.05"
- assertEquals(3.6, shape2.getBottomInset(), 0); // 0.05"
- assertEquals(VerticalAlignment.TOP, shape2.getVerticalAlignment());
- assertNull(tbp2.getLeftInset());
- assertNull(tbp2.getRightInset());
- assertNull(tbp2.getBottomInset());
- assertNull(tbp2.getTopInset());
- assertNull(tbp2.getAnchoring());
-
- assertEquals("subtitle", shape2.getText());
- assertEquals("subtitle", tb2.getParagraphs().stream().map(XDDFTextParagraph::getText).collect(Collectors.joining("\n")));
- 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());
- }
-
- void verifySlide2(XSLFSlide slide){
- XSLFSlideLayout layout = slide.getSlideLayout();
- List<XSLFShape> shapes = slide.getShapes();
- assertEquals("Title and Content",layout.getName());
-
- XSLFTextShape shape1 = (XSLFTextShape)shapes.get(0);
- CTPlaceholder ph1 = shape1.getPlaceholderDetails().getCTPlaceholder(false);
- 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
- assertNull(getSpPr(masterShape1).getXfrm());
- masterShape1 = (XSLFTextShape)layout.getSlideMaster().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()
- );
- assertEquals(7.2, shape1.getLeftInset(), 0); // 0.1"
- assertEquals(7.2, shape1.getRightInset(), 0); // 0.1"
- assertEquals(3.6, shape1.getTopInset(), 0); // 0.05"
- assertEquals(3.6, shape1.getBottomInset(), 0); // 0.05"
- assertEquals(VerticalAlignment.MIDDLE, shape1.getVerticalAlignment());
-
- // now check text properties
- assertEquals("Title", shape1.getText());
- XSLFTextRun r1 = shape1.getTextParagraphs().get(0).getTextRuns().get(0);
- assertEquals("Calibri", r1.getFontFamily());
- assertEquals(44.0, r1.getFontSize(), 0);
- assertEquals(Color.black, getColor(r1.getFontColor()));
-
- XSLFTextShape shape2 = (XSLFTextShape)shapes.get(1);
- CTPlaceholder ph2 = shape2.getPlaceholderDetails().getCTPlaceholder(false);
- assertFalse(ph2.isSetType()); // <p:ph idx="1"/>
- assertTrue(ph2.isSetIdx());
- assertEquals(1, ph2.getIdx());
- // anchor is not defined in the shape
- assertNull(getSpPr(shape2).getXfrm());
-
- XSLFTextShape masterShape2 = (XSLFTextShape)layout.getPlaceholder(ph2);
- // anchor of the body text is missing in the slide layout, llokup in the slide master
- assertNull(getSpPr(masterShape2).getXfrm());
- masterShape2 = (XSLFTextShape)layout.getSlideMaster().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()
- );
- assertEquals(7.2, shape2.getLeftInset(), 0); // 0.1"
- assertEquals(7.2, shape2.getRightInset(), 0); // 0.1"
- assertEquals(3.6, shape2.getTopInset(), 0); // 0.05"
- assertEquals(3.6, shape2.getBottomInset(), 0); // 0.05"
- assertEquals(VerticalAlignment.TOP, shape2.getVerticalAlignment());
-
- XSLFTextRun pr1 = shape2.getTextParagraphs().get(0).getTextRuns().get(0);
- assertEquals(0, pr1.getParagraph().getIndentLevel());
- assertEquals("Content", pr1.getRawText());
- assertEquals("Calibri", pr1.getFontFamily());
- assertEquals(32.0, pr1.getFontSize(), 0);
- assertEquals(27.0, pr1.getParagraph().getLeftMargin(), 0);
- assertEquals("\u2022", pr1.getParagraph().getBulletCharacter());
- assertEquals("Arial", pr1.getParagraph().getBulletFont());
-
- XSLFTextRun pr2 = shape2.getTextParagraphs().get(1).getTextRuns().get(0);
- assertEquals(1, pr2.getParagraph().getIndentLevel());
- assertEquals("Level 2", pr2.getRawText());
- assertEquals("Calibri", pr2.getFontFamily());
- assertEquals(28.0, pr2.getFontSize(), 0);
- assertEquals(58.5, pr2.getParagraph().getLeftMargin(), 0);
- assertEquals("\u2013", pr2.getParagraph().getBulletCharacter());
- assertEquals("Arial", pr2.getParagraph().getBulletFont());
-
- XSLFTextRun pr3 = shape2.getTextParagraphs().get(2).getTextRuns().get(0);
- assertEquals(2, pr3.getParagraph().getIndentLevel());
- assertEquals("Level 3", pr3.getRawText());
- assertEquals("Calibri", pr3.getFontFamily());
- assertEquals(24.0, pr3.getFontSize(), 0);
- assertEquals(90.0, pr3.getParagraph().getLeftMargin(), 0);
- assertEquals("\u2022", pr3.getParagraph().getBulletCharacter());
- assertEquals("Arial", pr3.getParagraph().getBulletFont());
-
- XSLFTextRun pr4 = shape2.getTextParagraphs().get(3).getTextRuns().get(0);
- assertEquals(3, pr4.getParagraph().getIndentLevel());
- assertEquals("Level 4", pr4.getRawText());
- assertEquals("Calibri", pr4.getFontFamily());
- assertEquals(20.0, pr4.getFontSize(), 0);
- assertEquals(126.0, pr4.getParagraph().getLeftMargin(), 0);
- assertEquals("\u2013", pr4.getParagraph().getBulletCharacter());
- assertEquals("Arial", pr4.getParagraph().getBulletFont());
-
- XSLFTextRun pr5 = shape2.getTextParagraphs().get(4).getTextRuns().get(0);
- assertEquals(4, pr5.getParagraph().getIndentLevel());
- assertEquals("Level 5", pr5.getRawText());
- assertEquals("Calibri", pr5.getFontFamily());
- assertEquals(20.0, pr5.getFontSize(), 0);
- assertEquals(162.0, pr5.getParagraph().getLeftMargin(), 0);
- assertEquals("\u00bb", pr5.getParagraph().getBulletCharacter());
- assertEquals("Arial", pr5.getParagraph().getBulletFont());
-
- }
-
- void verifySlide3(XSLFSlide slide){
- XSLFSlideLayout layout = slide.getSlideLayout();
- List<XSLFShape> shapes = slide.getShapes();
- assertEquals("Section Header",layout.getName());
-
- XSLFTextShape shape1 = (XSLFTextShape)shapes.get(0);
- CTPlaceholder ph1 = shape1.getPlaceholderDetails().getCTPlaceholder(false);
- assertEquals(STPlaceholderType.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()
- );
- assertEquals(7.2, shape1.getLeftInset(), 0); // 0.1"
- assertEquals(7.2, shape1.getRightInset(), 0); // 0.1"
- assertEquals(3.6, shape1.getTopInset(), 0); // 0.05"
- assertEquals(3.6, shape1.getBottomInset(), 0); // 0.05"
- assertEquals(VerticalAlignment.TOP, shape1.getVerticalAlignment());
-
- // now check text properties
- assertEquals("Section Title", shape1.getText());
- XSLFTextRun r1 = shape1.getTextParagraphs().get(0).getTextRuns().get(0);
- assertEquals(TextAlign.LEFT, r1.getParagraph().getTextAlign());
- assertEquals("Calibri", r1.getFontFamily());
- assertEquals(40.0, r1.getFontSize(), 0);
- assertEquals(Color.black, getColor(r1.getFontColor()));
- assertTrue(r1.isBold());
- assertFalse(r1.isItalic());
- assertFalse(r1.isUnderlined());
-
- XSLFTextShape shape2 = (XSLFTextShape)shapes.get(1);
- CTPlaceholder ph2 = shape2.getPlaceholderDetails().getCTPlaceholder(false);
- assertEquals(STPlaceholderType.BODY, 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()
- );
- assertEquals(7.2, shape2.getLeftInset(), 0); // 0.1"
- assertEquals(7.2, shape2.getRightInset(), 0); // 0.1"
- assertEquals(3.6, shape2.getTopInset(), 0); // 0.05"
- assertEquals(3.6, shape2.getBottomInset(), 0); // 0.05"
- assertEquals(VerticalAlignment.BOTTOM, shape2.getVerticalAlignment());
-
- assertEquals("Section Header", shape2.getText());
- XSLFTextRun r2 = shape2.getTextParagraphs().get(0).getTextRuns().get(0);
- assertEquals(TextAlign.LEFT, r2.getParagraph().getTextAlign());
- assertEquals("Calibri", r2.getFontFamily());
- assertEquals(20.0, r2.getFontSize(), 0);
- // TODO fix calculation of tint
- //assertEquals(new Color(137, 137, 137), r2.getFontColor());
- }
-
- void verifySlide4(XSLFSlide slide){
- XSLFSlideLayout layout = slide.getSlideLayout();
- List<XSLFShape> shapes = slide.getShapes();
- assertEquals("Two Content",layout.getName());
-
- XSLFTextShape shape1 = (XSLFTextShape)shapes.get(0);
- CTPlaceholder ph1 = shape1.getPlaceholderDetails().getCTPlaceholder(false);
- 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
- assertNull(getSpPr(masterShape1).getXfrm());
- masterShape1 = (XSLFTextShape)layout.getSlideMaster().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()
- );
- assertEquals(7.2, shape1.getLeftInset(), 0); // 0.1"
- assertEquals(7.2, shape1.getRightInset(), 0); // 0.1"
- assertEquals(3.6, shape1.getTopInset(), 0); // 0.05"
- assertEquals(3.6, shape1.getBottomInset(), 0); // 0.05"
- assertEquals(VerticalAlignment.MIDDLE, shape1.getVerticalAlignment());
-
- // now check text properties
- assertEquals("Title", shape1.getText());
- XSLFTextRun r1 = shape1.getTextParagraphs().get(0).getTextRuns().get(0);
- assertEquals(TextAlign.CENTER, r1.getParagraph().getTextAlign());
- assertEquals("Calibri", r1.getFontFamily());
- assertEquals(44.0, r1.getFontSize(), 0);
- assertEquals(Color.black, getColor(r1.getFontColor()));
-
- XSLFTextShape shape2 = (XSLFTextShape)shapes.get(1);
- CTPlaceholder ph2 = shape2.getPlaceholderDetails().getCTPlaceholder(false);
- assertFalse(ph2.isSetType());
- assertTrue(ph2.isSetIdx());
- assertEquals(1, ph2.getIdx()); //<p:ph sz="half" idx="1"/>
- // 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()
- );
- assertEquals(7.2, shape2.getLeftInset(), 0); // 0.1"
- assertEquals(7.2, shape2.getRightInset(), 0); // 0.1"
- assertEquals(3.6, shape2.getTopInset(), 0); // 0.05"
- assertEquals(3.6, shape2.getBottomInset(), 0); // 0.05"
- assertEquals(VerticalAlignment.TOP, shape2.getVerticalAlignment());
-
- XSLFTextRun pr1 = shape2.getTextParagraphs().get(0).getTextRuns().get(0);
- assertEquals(0, pr1.getParagraph().getIndentLevel());
- assertEquals("Left", pr1.getRawText());
- assertEquals("Calibri", pr1.getFontFamily());
- assertEquals(28.0, pr1.getFontSize(), 0);
- assertEquals(27.0, pr1.getParagraph().getLeftMargin(), 0);
- assertEquals("\u2022", pr1.getParagraph().getBulletCharacter());
- assertEquals("Arial", pr1.getParagraph().getBulletFont());
-
- XSLFTextRun pr2 = shape2.getTextParagraphs().get(1).getTextRuns().get(0);
- assertEquals(1, pr2.getParagraph().getIndentLevel());
- assertEquals("Level 2", pr2.getParagraph().getText());
- assertEquals("Calibri", pr2.getFontFamily());
- assertEquals(24.0, pr2.getFontSize(), 0);
- assertEquals(58.5, pr2.getParagraph().getLeftMargin(), 0);
- assertEquals("\u2013", pr2.getParagraph().getBulletCharacter());
- assertEquals("Arial", pr2.getParagraph().getBulletFont());
-
- XSLFTextRun pr3 = shape2.getTextParagraphs().get(2).getTextRuns().get(0);
- assertEquals(2, pr3.getParagraph().getIndentLevel());
- assertEquals("Level 3", pr3.getParagraph().getText());
- assertEquals("Calibri", pr3.getFontFamily());
- assertEquals(20.0, pr3.getFontSize(), 0);
- assertEquals(90.0, pr3.getParagraph().getLeftMargin(), 0);
- assertEquals("\u2022", pr3.getParagraph().getBulletCharacter());
- assertEquals("Arial", pr3.getParagraph().getBulletFont());
-
- XSLFTextRun pr4 = shape2.getTextParagraphs().get(3).getTextRuns().get(0);
- assertEquals(3, pr4.getParagraph().getIndentLevel());
- assertEquals("Level 4", pr4.getParagraph().getText());
- assertEquals("Calibri", pr4.getFontFamily());
- assertEquals(18.0, pr4.getFontSize(), 0);
- assertEquals(126.0, pr4.getParagraph().getLeftMargin(), 0);
- assertEquals("\u2013", pr4.getParagraph().getBulletCharacter());
- assertEquals("Arial", pr4.getParagraph().getBulletFont());
-
- XSLFTextShape shape3 = (XSLFTextShape)shapes.get(2);
- XSLFTextRun pr5 = shape3.getTextParagraphs().get(0).getTextRuns().get(0);
- assertEquals(0, pr5.getParagraph().getIndentLevel());
- assertEquals("Right", pr5.getRawText());
- assertEquals("Calibri", pr5.getFontFamily());
- assertEquals(Color.black, getColor(pr5.getFontColor()));
- }
-
- @SuppressWarnings("unused")
- void verifySlide5(XSLFSlide slide){
- XSLFSlideLayout layout = slide.getSlideLayout();
- List<XSLFShape> shapes = slide.getShapes();
- // TODO
- }
-
- void verifySlide7(XSLFSlide slide){
- XSLFSlideLayout layout = slide.getSlideLayout();
- List<XSLFShape> shapes = slide.getShapes();
- assertEquals("Blank",layout.getName());
-
- XSLFTextShape shape1 = (XSLFTextShape)shapes.get(0);
- CTPlaceholder ph1 = shape1.getPlaceholderDetails().getCTPlaceholder(false);
- assertEquals(STPlaceholderType.TITLE, ph1.getType());
- // anchor is not defined in the shape
- assertNull(getSpPr(shape1).getXfrm());
-
- 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()
- );
- assertEquals(7.2, shape1.getLeftInset(), 0); // 0.1"
- assertEquals(7.2, shape1.getRightInset(), 0); // 0.1"
- assertEquals(3.6, shape1.getTopInset(), 0); // 0.05"
- assertEquals(3.6, shape1.getBottomInset(), 0); // 0.05"
- assertEquals(VerticalAlignment.MIDDLE, shape1.getVerticalAlignment());
-
- // now check text properties
- assertEquals("Blank with Default Title", shape1.getText());
- XSLFTextRun r1 = shape1.getTextParagraphs().get(0).getTextRuns().get(0);
- assertEquals(TextAlign.CENTER, r1.getParagraph().getTextAlign());
- assertEquals("Calibri", r1.getFontFamily());
- assertEquals(44.0, r1.getFontSize(), 0);
- assertEquals(Color.black, getColor(r1.getFontColor()));
- assertFalse(r1.isBold());
-
- XSLFTextShape shape2 = (XSLFTextShape)shapes.get(1);
-
- 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()
- );
- assertEquals(7.2, shape2.getLeftInset(), 0); // 0.1"
- assertEquals(7.2, shape2.getRightInset(), 0); // 0.1"
- assertEquals(3.6, shape2.getTopInset(), 0); // 0.05"
- assertEquals(3.6, shape2.getBottomInset(), 0); // 0.05"
- assertEquals(VerticalAlignment.TOP, shape2.getVerticalAlignment());
-
- XSLFTextRun pr1 = shape2.getTextParagraphs().get(0).getTextRuns().get(0);
- assertEquals(0, pr1.getParagraph().getIndentLevel());
- assertEquals("Default Text", pr1.getRawText());
- assertEquals("Calibri", pr1.getFontFamily());
- assertEquals(18.0, pr1.getFontSize(), 0);
-
- XSLFTextShape shape3 = (XSLFTextShape)shapes.get(2);
- assertEquals("Default", shape3.getTextParagraphs().get(0).getText());
- assertEquals("Text with levels", shape3.getTextParagraphs().get(1).getText());
- assertEquals("Level 1", shape3.getTextParagraphs().get(2).getText());
- assertEquals("Level 2", shape3.getTextParagraphs().get(3).getText());
- assertEquals("Level 3", shape3.getTextParagraphs().get(4).getText());
-
- for(int p = 0; p < 5; p++) {
- XSLFTextParagraph pr = shape3.getTextParagraphs().get(p);
- assertEquals("Calibri", pr.getTextRuns().get(0).getFontFamily());
- assertEquals(18.0, pr.getTextRuns().get(0).getFontSize(), 0);
- }
- }
-
- 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.getPlaceholderDetails().getCTPlaceholder(false);
- 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()
- );
- assertEquals(7.2, shape1.getLeftInset(), 0); // 0.1"
- assertEquals(7.2, shape1.getRightInset(), 0); // 0.1"
- assertEquals(3.6, shape1.getTopInset(), 0); // 0.05"
- assertEquals(3.6, shape1.getBottomInset(), 0); // 0.05"
- 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.getParagraph().getTextAlign());
- assertEquals("Calibri", r1.getFontFamily());
- assertEquals(20.0, r1.getFontSize(), 0);
- assertEquals(Color.black, getColor(r1.getFontColor()));
- assertTrue(r1.isBold());
-
- XSLFTextShape shape2 = (XSLFTextShape)shapes.get(1);
- CTPlaceholder ph2 = shape2.getPlaceholderDetails().getCTPlaceholder(false);
- 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()
- );
- assertEquals(7.2, shape2.getLeftInset(), 0); // 0.1"
- assertEquals(7.2, shape2.getRightInset(), 0); // 0.1"
- assertEquals(3.6, shape2.getTopInset(), 0); // 0.05"
- assertEquals(3.6, shape2.getBottomInset(), 0); // 0.05"
- assertEquals(VerticalAlignment.TOP, shape2.getVerticalAlignment());
-
- XSLFTextRun pr1 = shape2.getTextParagraphs().get(0).getTextRuns().get(0);
- assertEquals(0, pr1.getParagraph().getIndentLevel());
- assertEquals("Level 1", pr1.getRawText());
- assertEquals("Calibri", pr1.getFontFamily());
- assertEquals(32.0, pr1.getFontSize(), 0);
- assertEquals(27.0, pr1.getParagraph().getLeftMargin(), 0);
- assertEquals("\u2022", pr1.getParagraph().getBulletCharacter());
- assertEquals("Arial", pr1.getParagraph().getBulletFont());
-
- XSLFTextRun pr2 = shape2.getTextParagraphs().get(1).getTextRuns().get(0);
- assertEquals(1, pr2.getParagraph().getIndentLevel());
- assertEquals("Level 2", pr2.getParagraph().getText());
- assertEquals("Calibri", pr2.getFontFamily());
- assertEquals(28.0, pr2.getFontSize(), 0);
- assertEquals(58.5, pr2.getParagraph().getLeftMargin(), 0);
- assertEquals("\u2013", pr2.getParagraph().getBulletCharacter());
- assertEquals("Arial", pr2.getParagraph().getBulletFont());
-
- XSLFTextRun pr3 = shape2.getTextParagraphs().get(2).getTextRuns().get(0);
- assertEquals(2, pr3.getParagraph().getIndentLevel());
- assertEquals("Level 3", pr3.getParagraph().getText());
- assertEquals("Calibri", pr3.getFontFamily());
- assertEquals(24.0, pr3.getFontSize(), 0);
- assertEquals(90.0, pr3.getParagraph().getLeftMargin(), 0);
- assertEquals("\u2022", pr3.getParagraph().getBulletCharacter());
- assertEquals("Arial", pr3.getParagraph().getBulletFont());
-
- XSLFTextRun pr4 = shape2.getTextParagraphs().get(3).getTextRuns().get(0);
- assertEquals(3, pr4.getParagraph().getIndentLevel());
- assertEquals("Level 4", pr4.getParagraph().getText());
- assertEquals("Calibri", pr4.getFontFamily());
- assertEquals(20.0, pr4.getFontSize(), 0);
- assertEquals(126.0, pr4.getParagraph().getLeftMargin(), 0);
- assertEquals("\u2013", pr4.getParagraph().getBulletCharacter());
- assertEquals("Arial", pr4.getParagraph().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.getParagraph().getIndentLevel());
- assertEquals("Content with caption", pr1.getRawText());
- assertEquals("Calibri", pr1.getFontFamily());
- assertEquals(14.0, pr1.getFontSize(), 0);
-
- }
-
- void verifySlide10(XSLFSlide slide){
- XSLFTextShape footer = (XSLFTextShape)slide.getPlaceholderByType(STPlaceholderType.INT_FTR);
-
- // now check text properties
- assertEquals("Apache Software Foundation", footer.getText());
- assertEquals(VerticalAlignment.MIDDLE, footer.getVerticalAlignment());
-
- XSLFTextRun r1 = footer.getTextParagraphs().get(0).getTextRuns().get(0);
- assertEquals(TextAlign.CENTER, r1.getParagraph().getTextAlign());
- assertEquals("Calibri", r1.getFontFamily());
- assertEquals(12.0, r1.getFontSize(), 0);
- assertEquals(new Color(0x898989), getColor(r1.getFontColor()));
-
- XSLFTextShape dt = (XSLFTextShape)slide.getPlaceholderByType(STPlaceholderType.INT_DT);
- assertEquals("Friday, October 21, 2011", dt.getText());
-
- XSLFTextShape sldNum = (XSLFTextShape)slide.getPlaceholderByType(STPlaceholderType.INT_SLD_NUM);
- assertEquals("10", sldNum.getText());
- }
-
- @Test
- void testTitleStyles() throws IOException {
- XMLSlideShow ppt = new XMLSlideShow();
-
- XSLFSlideMaster master = ppt.getSlideMasters().get(0);
- XSLFTheme theme = master.getTheme();
- XSLFSlideLayout layout = master.getLayout(SlideLayout.TITLE);
- XSLFSlide slide = ppt.createSlide(layout) ;
- assertSame(layout, slide.getSlideLayout());
- assertSame(master, slide.getSlideMaster());
-
- XSLFTextShape titleShape = slide.getPlaceholder(0);
- titleShape.setText("Apache POI");
- XSLFTextParagraph paragraph = titleShape.getTextParagraphs().get(0);
- XSLFTextRun textRun = paragraph.getTextRuns().get(0);
-
- // level 1 : default title style on the master slide
- // /p:sldMaster/p:txStyles/p:titleStyle/a:lvl1pPr
- CTTextParagraphProperties lv1PPr = master.getXmlObject().getTxStyles().getTitleStyle().getLvl1PPr();
- CTTextCharacterProperties lv1CPr = lv1PPr.getDefRPr();
- assertEquals(4400, lv1CPr.getSz());
- assertEquals(44.0, textRun.getFontSize(), 0);
- assertEquals("+mj-lt", lv1CPr.getLatin().getTypeface());
- assertEquals("Calibri", theme.getMajorFont());
- assertEquals("Calibri", textRun.getFontFamily());
- lv1CPr.setSz(3200);
- assertEquals(32.0, textRun.getFontSize(), 0);
- lv1CPr.getLatin().setTypeface("Arial");
- assertEquals("Arial", textRun.getFontFamily());
- assertEquals(STTextAlignType.CTR, lv1PPr.getAlgn());
- assertEquals(TextAlign.CENTER, paragraph.getTextAlign());
- lv1PPr.setAlgn(STTextAlignType.L);
- assertEquals(TextAlign.LEFT, paragraph.getTextAlign());
-
- // level 2: title placeholder on the master slide
- // /p:sldMaster/p:cSld/p:spTree/p:sp/p:nvPr/p:ph[@type="title"]
- XSLFTextShape tx2 = master.getPlaceholder(0);
- CTTextParagraphProperties lv2PPr = tx2.getTextBody(true).getLstStyle().addNewLvl1PPr();
- CTTextCharacterProperties lv2CPr = lv2PPr.addNewDefRPr();
- lv2CPr.setSz(3300);
- assertEquals(33.0, textRun.getFontSize(), 0);
- lv2CPr.addNewLatin().setTypeface("Times");
- assertEquals("Times", textRun.getFontFamily());
- lv2PPr.setAlgn(STTextAlignType.R);
- assertEquals(TextAlign.RIGHT, paragraph.getTextAlign());
-
-
- // level 3: title placeholder on the slide layout
- // /p:sldLayout /p:cSld/p:spTree/p:sp/p:nvPr/p:ph[@type="ctrTitle"]
- XSLFTextShape tx3 = layout.getPlaceholder(0);
- CTTextParagraphProperties lv3PPr = tx3.getTextBody(true).getLstStyle().addNewLvl1PPr();
- CTTextCharacterProperties lv3CPr = lv3PPr.addNewDefRPr();
- lv3CPr.setSz(3400);
- assertEquals(34.0, textRun.getFontSize(), 0);
- lv3CPr.addNewLatin().setTypeface("Courier New");
- assertEquals("Courier New", textRun.getFontFamily());
- lv3PPr.setAlgn(STTextAlignType.CTR);
- assertEquals(TextAlign.CENTER, paragraph.getTextAlign());
-
- // level 4: default text properties in the shape itself
- // ./p:sp/p:txBody/a:lstStyle/a:lvl1pPr
- CTTextParagraphProperties lv4PPr = titleShape.getTextBody(true).getLstStyle().addNewLvl1PPr();
- CTTextCharacterProperties lv4CPr = lv4PPr.addNewDefRPr();
- lv4CPr.setSz(3500);
- assertEquals(35.0, textRun.getFontSize(), 0);
- lv4CPr.addNewLatin().setTypeface("Arial");
- assertEquals("Arial", textRun.getFontFamily());
- lv4PPr.setAlgn(STTextAlignType.L);
- assertEquals(TextAlign.LEFT, paragraph.getTextAlign());
-
- // level 5: text properties are defined in the text run
- CTTextParagraphProperties lv5PPr = paragraph.getXmlObject().addNewPPr();
- CTTextCharacterProperties lv5CPr = textRun.getRPr(false);
- lv5CPr.setSz(3600);
- assertEquals(36.0, textRun.getFontSize(), 0);
- lv5CPr.addNewLatin().setTypeface("Calibri");
- assertEquals("Calibri", textRun.getFontFamily());
- lv5PPr.setAlgn(STTextAlignType.CTR);
- assertEquals(TextAlign.CENTER, paragraph.getTextAlign());
-
- ppt.close();
- }
-
- @Test
- 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();
- }
-
- @Test
- void metroBlob() throws IOException, ReflectiveOperationException {
- assumeFalse(xslfOnly);
- File f = POIDataSamples.getSlideShowInstance().getFile("bug52297.ppt");
- SlideShow<?,?> ppt = SlideShowFactory.create(f);
- Shape<?, ?> sh = ppt.getSlides().get(1).getShapes().get(3);
- XSLFAutoShape xsh = (XSLFAutoShape)sh.getClass().getMethod("getMetroShape").invoke(sh);
- String textExp = " ___ ___ ___ ________ __ _______ ___ ___________ __________ __ _____ ___ ___ ___ _______ ____ ______ ___________ _____________ ___ _______ ______ ____ ______ __ ___________ __________ ___ _________ _____ ________ __________ ___ _______ __________ ";
- String textAct = xsh.getText();
- ppt.close();
- assertEquals(textExp, textAct);
- }
-} \ No newline at end of file