public function testTypeBar() { $seriesData = array('A' => 1, 'B' => 2, 'C' => 4, 'D' => 3, 'E' => 2); $oPHPPowerPoint = new PhpPowerpoint(); $oSlide = $oPHPPowerPoint->getActiveSlide(); $oShape = $oSlide->createChartShape(); $oShape->setResizeProportional(false)->setHeight(550)->setWidth(700)->setOffsetX(120)->setOffsetY(80); $oBar = new Bar(); $oSeries = new Series('Downloads', $seriesData); $oSeries->getDataPointFill(0)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color(Color::COLOR_BLUE)); $oSeries->getDataPointFill(1)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color(Color::COLOR_DARKBLUE)); $oSeries->getDataPointFill(2)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color(Color::COLOR_DARKGREEN)); $oSeries->getDataPointFill(3)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color(Color::COLOR_DARKRED)); $oSeries->getDataPointFill(4)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color(Color::COLOR_DARKYELLOW)); $oBar->addSeries($oSeries); $oShape->getPlotArea()->setType($oBar); $oXMLDoc = TestHelperDOCX::getDocument($oPHPPowerPoint, 'PowerPoint2007'); $element = '/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData'; $this->assertTrue($oXMLDoc->elementExists($element, 'ppt/slides/slide1.xml')); $element = '/c:chartSpace/c:chart/c:plotArea/c:barChart'; $this->assertTrue($oXMLDoc->elementExists($element, 'ppt/charts/' . $oShape->getIndexedFilename())); $element = '/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser'; $this->assertTrue($oXMLDoc->elementExists($element, 'ppt/charts/' . $oShape->getIndexedFilename())); $element = '/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dPt/c:spPr'; $this->assertTrue($oXMLDoc->elementExists($element, 'ppt/charts/' . $oShape->getIndexedFilename())); $element = '/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:tx/c:v'; $this->assertEquals($oSeries->getTitle(), $oXMLDoc->getElement($element, 'ppt/charts/' . $oShape->getIndexedFilename())->nodeValue); }
public function testViewProps() { $phpPowerPoint = new PhpPowerpoint(); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'PowerPoint2007'); $element = '/p:viewPr'; $this->assertTrue($pres->elementExists($element, 'ppt/viewProps.xml')); $this->assertEquals('0', $pres->getElementAttribute($element, 'showComments', 'ppt/viewProps.xml')); }
public function testCustomDocumentLayout() { $phpPowerPoint = new PhpPowerpoint(); $oDocumentLayout = new DocumentLayout(); $oDocumentLayout->setDocumentLayout(array('cx' => rand(1, 100), 'cy' => rand(1, 100))); $phpPowerPoint->setLayout($oDocumentLayout); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'ODPresentation'); $element = "/office:document-styles/office:automatic-styles/style:page-layout"; $this->assertTrue($pres->elementExists($element, 'styles.xml')); $this->assertEquals('sPL0', $pres->getElementAttribute($element, 'style:name', 'styles.xml')); $element = "/office:document-styles/office:master-styles/style:master-page"; $this->assertTrue($pres->elementExists($element, 'styles.xml')); $this->assertEquals('sPL0', $pres->getElementAttribute($element, 'style:page-layout-name', 'styles.xml')); }
public function testMemoryDrawing() { $phpPowerPoint = new PhpPowerpoint(); $oSlide = $phpPowerPoint->getActiveSlide(); $oShape = new MemoryDrawing(); $gdImage = @imagecreatetruecolor(140, 20); $textColor = imagecolorallocate($gdImage, 255, 255, 255); imagestring($gdImage, 1, 5, 5, 'Created with PHPPowerPoint', $textColor); $oShape->setImageResource($gdImage)->setRenderingFunction(MemoryDrawing::RENDERING_JPEG)->setMimeType(MemoryDrawing::MIMETYPE_DEFAULT); $oSlide->addShape($oShape); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'ODPresentation'); $element = '/manifest:manifest/manifest:file-entry[5]'; $this->assertTrue($pres->elementExists($element, 'META-INF/manifest.xml')); $this->assertEquals('Pictures/' . $oShape->getIndexedFilename(), $pres->getElementAttribute($element, 'manifest:full-path', 'META-INF/manifest.xml')); }
public function testTypeArea() { $seriesData = array('A' => 1, 'B' => 2, 'C' => 4, 'D' => 3, 'E' => 2); $oPHPPowerPoint = new PhpPowerpoint(); $oSlide = $oPHPPowerPoint->getActiveSlide(); $oShape = $oSlide->createChartShape(); $oShape->setResizeProportional(false)->setHeight(550)->setWidth(700)->setOffsetX(120)->setOffsetY(80); $oArea = new Area(); $oSeries = new Series('Downloads', $seriesData); $oSeries->getFill()->setStartColor(new Color('FFAABBCC')); $oArea->addSeries($oSeries); $oShape->getPlotArea()->setType($oArea); $oXMLDoc = TestHelperDOCX::getDocument($oPHPPowerPoint, 'PowerPoint2007'); $element = '/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData'; $this->assertTrue($oXMLDoc->elementExists($element, 'ppt/slides/slide1.xml')); $element = '/c:chartSpace/c:chart/c:plotArea/c:areaChart'; $this->assertTrue($oXMLDoc->elementExists($element, 'ppt/charts/' . $oShape->getIndexedFilename())); $element = '/c:chartSpace/c:chart/c:plotArea/c:areaChart/c:ser'; $this->assertTrue($oXMLDoc->elementExists($element, 'ppt/charts/' . $oShape->getIndexedFilename())); }
public function testChartArea() { $oSeries = new Series('Series', array('Jan' => 1, 'Feb' => 5, 'Mar' => 2)); $oSeries->getFill()->setStartColor(new Color('FF93A9CE')); $oArea = new Area(); $oArea->addSeries($oSeries); $phpPowerPoint = new PhpPowerpoint(); $oSlide = $phpPowerPoint->getActiveSlide(); $oChart = $oSlide->createChartShape(); $oChart->getPlotArea()->setType($oArea); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'ODPresentation'); $element = '/office:document-content/office:body/office:chart/chart:chart'; $this->assertTrue($pres->elementExists($element, 'Object 1/content.xml')); $this->assertEquals('chart:area', $pres->getElementAttribute($element, 'chart:class', 'Object 1/content.xml')); $element = '/office:document-content/office:body/office:chart/chart:chart/chart:plot-area/chart:series'; $this->assertTrue($pres->elementExists($element, 'Object 1/content.xml')); $this->assertEquals('chart:area', $pres->getElementAttribute($element, 'chart:class', 'Object 1/content.xml')); $element = '/office:document-content/office:automatic-styles/style:style[@style:name=\'styleSeries0\']/style:graphic-properties'; $this->assertTrue($pres->elementExists($element, 'Object 1/content.xml')); $this->assertFalse($pres->attributeElementExists($element, 'draw:fill', 'Object 1/content.xml')); $this->assertTrue($pres->attributeElementExists($element, 'draw:fill-color', 'Object 1/content.xml')); $this->assertEquals('#93A9CE', $pres->getElementAttribute($element, 'draw:fill-color', 'Object 1/content.xml')); }
public function testChartBarHorizontal() { $oSeries = new Series('Series', array('Jan' => 1, 'Feb' => 5, 'Mar' => 2)); $oSeries->setShowSeriesName(true); $oSeries->getDataPointFill(0)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color('FF4672A8')); $oSeries->getDataPointFill(1)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color('FFAB4744')); $oSeries->getDataPointFill(2)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color('FF8AA64F')); $oBar = new Bar(); $oBar->setBarDirection(Bar::DIRECTION_HORIZONTAL); $oBar->addSeries($oSeries); $phpPowerPoint = new PhpPowerpoint(); $oSlide = $phpPowerPoint->getActiveSlide(); $oChart = $oSlide->createChartShape(); $oChart->getPlotArea()->setType($oBar); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'ODPresentation'); $element = '/office:document-content/office:body/office:chart/chart:chart'; $this->assertTrue($pres->elementExists($element, 'Object 1/content.xml')); $this->assertEquals('chart:bar', $pres->getElementAttribute($element, 'chart:class', 'Object 1/content.xml')); $element = '/office:document-content/office:automatic-styles/style:style[@style:name=\'stylePlotArea\']/style:chart-properties'; $this->assertTrue($pres->elementExists($element, 'Object 1/content.xml')); $this->assertEquals('true', $pres->getElementAttribute($element, 'chart:vertical', 'Object 1/content.xml')); $this->assertFalse($pres->attributeElementExists($element, 'chart:three-dimensional', 'Object 1/content.xml')); $this->assertFalse($pres->attributeElementExists($element, 'chart:right-angled-axes', 'Object 1/content.xml')); }
public function testTypeScatterSuperScript() { $seriesData = array('A' => 1, 'B' => 2, 'C' => 4, 'D' => 3, 'E' => 2); $oPHPPowerPoint = new PhpPowerpoint(); $oSlide = $oPHPPowerPoint->getActiveSlide(); $oShape = $oSlide->createChartShape(); $oShape->setResizeProportional(false)->setHeight(550)->setWidth(700)->setOffsetX(120)->setOffsetY(80); $oScatter = new Scatter(); $oSeries = new Series('Downloads', $seriesData); $oSeries->getFont()->setSuperScript(true); $oScatter->addSeries($oSeries); $oShape->getPlotArea()->setType($oScatter); $oXMLDoc = TestHelperDOCX::getDocument($oPHPPowerPoint, 'PowerPoint2007'); $element = '/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser/c:dLbls/c:txPr/a:p/a:pPr/a:defRPr'; $this->assertTrue($oXMLDoc->elementExists($element, 'ppt/charts/' . $oShape->getIndexedFilename())); $this->assertEquals('30000', $oXMLDoc->getElementAttribute($element, 'baseline', 'ppt/charts/' . $oShape->getIndexedFilename())); }
public function testLegend() { $oSeries = new Series('Series', array('Jan' => 1, 'Feb' => 5, 'Mar' => 2)); $oSeries->setShowSeriesName(true); $oLine = new Line(); $oLine->addSeries($oSeries); $phpPowerPoint = new PhpPowerpoint(); $oSlide = $phpPowerPoint->getActiveSlide(); $oChart = $oSlide->createChartShape(); $oChart->getPlotArea()->setType($oLine); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'ODPresentation'); $element = '/office:document-content/office:body/office:chart/chart:chart/chart:legend'; $this->assertTrue($pres->elementExists($element, 'Object 1/content.xml')); $element = '/office:document-content/office:body/office:chart/chart:chart/table:table/table:table-header-rows'; $this->assertTrue($pres->elementExists($element, 'Object 1/content.xml')); $element = '/office:document-content/office:body/office:chart/chart:chart/table:table/table:table-header-rows/table:table-row'; $this->assertTrue($pres->elementExists($element, 'Object 1/content.xml')); $element = '/office:document-content/office:body/office:chart/chart:chart/table:table/table:table-header-rows/table:table-row/table:table-cell'; $this->assertTrue($pres->elementExists($element, 'Object 1/content.xml')); $element = '/office:document-content/office:body/office:chart/chart:chart/table:table/table:table-header-rows/table:table-row/table:table-cell[@office:value-type=\'string\']'; $this->assertTrue($pres->elementExists($element, 'Object 1/content.xml')); }
public function testTableWithText() { $oRun = new Run(); $oRun->setText('Test'); $phpPowerPoint = new PhpPowerpoint(); $oSlide = $phpPowerPoint->getActiveSlide(); $oShape = $oSlide->createTableShape(); $oRow = $oShape->createRow(); $oCell = $oRow->getCell(); $oCell->addText($oRun); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'ODPresentation'); $element = '/office:document-content/office:body/office:presentation/draw:page/draw:frame/table:table/table:table-row/table:table-cell/text:p/text:span'; $this->assertTrue($pres->elementExists($element, 'content.xml')); $this->assertEquals('Test', $pres->getElement($element, 'content.xml')->nodeValue); }
public function testTransition() { $value = rand(1000, 5000); $oTransition = new Transition(); $phpPowerPoint = new PhpPowerpoint(); $oSlide = $phpPowerPoint->getActiveSlide(); $element = '/p:sld/p:transition'; $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'PowerPoint2007'); $this->assertFalse($pres->elementExists($element, 'ppt/slides/slide1.xml')); $oTransition->setTimeTrigger(true, $value); $oSlide->setTransition($oTransition); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'PowerPoint2007'); $this->assertTrue($pres->elementExists($element, 'ppt/slides/slide1.xml')); $this->assertTrue($pres->attributeElementExists($element, 'advTm', 'ppt/slides/slide1.xml')); $this->assertEquals($value, $pres->getElementAttribute($element, 'advTm', 'ppt/slides/slide1.xml')); $this->assertContains('0', $pres->getElementAttribute($element, 'advClick', 'ppt/slides/slide1.xml')); $oTransition->setSpeed(Transition::SPEED_FAST); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'PowerPoint2007'); $this->assertContains('fast', $pres->getElementAttribute($element, 'spd', 'ppt/slides/slide1.xml')); $oTransition->setSpeed(Transition::SPEED_MEDIUM); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'PowerPoint2007'); $this->assertContains('med', $pres->getElementAttribute($element, 'spd', 'ppt/slides/slide1.xml')); $oTransition->setSpeed(Transition::SPEED_SLOW); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'PowerPoint2007'); $this->assertContains('slow', $pres->getElementAttribute($element, 'spd', 'ppt/slides/slide1.xml')); $rcTransition = new \ReflectionClass('PhpOffice\\PhpPowerpoint\\Slide\\Transition'); $arrayConstants = $rcTransition->getConstants(); foreach ($arrayConstants as $key => $value) { if (strpos($key, 'TRANSITION_') !== 0) { continue; } $oTransition->setTransitionType($rcTransition->getConstant($key)); $oSlide->setTransition($oTransition); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'PowerPoint2007'); switch ($key) { case 'TRANSITION_BLINDS_HORIZONTAL': $this->assertTrue($pres->elementExists($element . '/p:blinds[@dir=\'horz\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_BLINDS_VERTICAL': $this->assertTrue($pres->elementExists($element . '/p:blinds[@dir=\'vert\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_CHECKER_HORIZONTAL': $this->assertTrue($pres->elementExists($element . '/p:checker[@dir=\'horz\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_CHECKER_VERTICAL': $this->assertTrue($pres->elementExists($element . '/p:checker[@dir=\'vert\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_CIRCLE_HORIZONTAL': $this->assertTrue($pres->elementExists($element . '/p:circle[@dir=\'horz\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_CIRCLE_VERTICAL': $this->assertTrue($pres->elementExists($element . '/p:circle[@dir=\'vert\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_COMB_HORIZONTAL': $this->assertTrue($pres->elementExists($element . '/p:comb[@dir=\'horz\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_COMB_VERTICAL': $this->assertTrue($pres->elementExists($element . '/p:comb[@dir=\'vert\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_COVER_DOWN': $this->assertTrue($pres->elementExists($element . '/p:cover[@dir=\'d\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_COVER_LEFT': $this->assertTrue($pres->elementExists($element . '/p:cover[@dir=\'l\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_COVER_LEFT_DOWN': $this->assertTrue($pres->elementExists($element . '/p:cover[@dir=\'ld\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_COVER_LEFT_UP': $this->assertTrue($pres->elementExists($element . '/p:cover[@dir=\'lu\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_COVER_RIGHT': $this->assertTrue($pres->elementExists($element . '/p:cover[@dir=\'r\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_COVER_RIGHT_DOWN': $this->assertTrue($pres->elementExists($element . '/p:cover[@dir=\'rd\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_COVER_RIGHT_UP': $this->assertTrue($pres->elementExists($element . '/p:cover[@dir=\'ru\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_COVER_UP': $this->assertTrue($pres->elementExists($element . '/p:cover[@dir=\'u\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_CUT': $this->assertTrue($pres->elementExists($element . '/p:cut', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_DIAMOND': $this->assertTrue($pres->elementExists($element . '/p:diamond', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_DISSOLVE': $this->assertTrue($pres->elementExists($element . '/p:dissolve', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_FADE': $this->assertTrue($pres->elementExists($element . '/p:fade', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_NEWSFLASH': $this->assertTrue($pres->elementExists($element . '/p:newsflash', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_PLUS': $this->assertTrue($pres->elementExists($element . '/p:plus', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_PULL_DOWN': $this->assertTrue($pres->elementExists($element . '/p:pull[@dir=\'d\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_PULL_LEFT': $this->assertTrue($pres->elementExists($element . '/p:pull[@dir=\'l\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_PULL_RIGHT': $this->assertTrue($pres->elementExists($element . '/p:pull[@dir=\'r\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_PULL_UP': $this->assertTrue($pres->elementExists($element . '/p:pull[@dir=\'u\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_PUSH_DOWN': $this->assertTrue($pres->elementExists($element . '/p:push[@dir=\'d\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_PUSH_LEFT': $this->assertTrue($pres->elementExists($element . '/p:push[@dir=\'l\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_PUSH_RIGHT': $this->assertTrue($pres->elementExists($element . '/p:push[@dir=\'r\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_PUSH_UP': $this->assertTrue($pres->elementExists($element . '/p:push[@dir=\'u\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_RANDOM': $this->assertTrue($pres->elementExists($element . '/p:random', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_RANDOMBAR_HORIZONTAL': $this->assertTrue($pres->elementExists($element . '/p:randomBar[@dir=\'horz\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_RANDOMBAR_VERTICAL': $this->assertTrue($pres->elementExists($element . '/p:randomBar[@dir=\'vert\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_SPLIT_IN_HORIZONTAL': $this->assertTrue($pres->elementExists($element . '/p:split[@dir=\'in\'][@orient=\'horz\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_SPLIT_OUT_HORIZONTAL': $this->assertTrue($pres->elementExists($element . '/p:split[@dir=\'out\'][@orient=\'horz\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_SPLIT_IN_VERTICAL': $this->assertTrue($pres->elementExists($element . '/p:split[@dir=\'in\'][@orient=\'vert\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_SPLIT_OUT_VERTICAL': $this->assertTrue($pres->elementExists($element . '/p:split[@dir=\'out\'][@orient=\'vert\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_STRIPS_LEFT_DOWN': $this->assertTrue($pres->elementExists($element . '/p:strips[@dir=\'ld\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_STRIPS_LEFT_UP': $this->assertTrue($pres->elementExists($element . '/p:strips[@dir=\'lu\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_STRIPS_RIGHT_DOWN': $this->assertTrue($pres->elementExists($element . '/p:strips[@dir=\'rd\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_STRIPS_RIGHT_UP': $this->assertTrue($pres->elementExists($element . '/p:strips[@dir=\'ru\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_WEDGE': $this->assertTrue($pres->elementExists($element . '/p:wedge', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_WIPE_DOWN': $this->assertTrue($pres->elementExists($element . '/p:wipe[@dir=\'d\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_WIPE_LEFT': $this->assertTrue($pres->elementExists($element . '/p:wipe[@dir=\'l\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_WIPE_RIGHT': $this->assertTrue($pres->elementExists($element . '/p:wipe[@dir=\'r\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_WIPE_UP': $this->assertTrue($pres->elementExists($element . '/p:wipe[@dir=\'u\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_ZOOM_IN': $this->assertTrue($pres->elementExists($element . '/p:zoom[@dir=\'in\']', 'ppt/slides/slide1.xml')); break; case 'TRANSITION_ZOOM_OUT': $this->assertTrue($pres->elementExists($element . '/p:zoom[@dir=\'out\']', 'ppt/slides/slide1.xml')); break; } } $oTransition->setManualTrigger(true); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'PowerPoint2007'); $this->assertContains('1', $pres->getElementAttribute($element, 'advClick', 'ppt/slides/slide1.xml')); }
public function testTransition() { $value = rand(1000, 5000); $oTransition = new Transition(); $phpPowerPoint = new PhpPowerpoint(); $oSlide = $phpPowerPoint->getActiveSlide(); $element = '/office:document-content/office:automatic-styles/style:style[@style:name=\'stylePage0\']/style:drawing-page-properties'; $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'ODPresentation'); $this->assertTrue($pres->elementExists($element, 'content.xml')); $this->assertFalse($pres->attributeElementExists($element, 'presentation:duration', 'content.xml')); $oTransition->setTimeTrigger(true, $value); $oSlide->setTransition($oTransition); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'ODPresentation'); $this->assertTrue($pres->elementExists($element, 'content.xml')); $this->assertTrue($pres->attributeElementExists($element, 'presentation:duration', 'content.xml')); $this->assertStringStartsWith('PT', $pres->getElementAttribute($element, 'presentation:duration', 'content.xml')); $this->assertStringEndsWith('S', $pres->getElementAttribute($element, 'presentation:duration', 'content.xml')); $this->assertContains(number_format($value / 1000, 6, '.', ''), $pres->getElementAttribute($element, 'presentation:duration', 'content.xml')); $this->assertContains('automatic', $pres->getElementAttribute($element, 'presentation:transition-type', 'content.xml')); $oTransition->setSpeed(Transition::SPEED_FAST); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'ODPresentation'); $this->assertContains('fast', $pres->getElementAttribute($element, 'presentation:transition-speed', 'content.xml')); $oTransition->setSpeed(Transition::SPEED_MEDIUM); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'ODPresentation'); $this->assertContains('medium', $pres->getElementAttribute($element, 'presentation:transition-speed', 'content.xml')); $oTransition->setSpeed(Transition::SPEED_SLOW); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'ODPresentation'); $this->assertContains('slow', $pres->getElementAttribute($element, 'presentation:transition-speed', 'content.xml')); $rcTransition = new \ReflectionClass('PhpOffice\\PhpPowerpoint\\Slide\\Transition'); $arrayConstants = $rcTransition->getConstants(); foreach ($arrayConstants as $key => $value) { if (strpos($key, 'TRANSITION_') !== 0) { continue; } $oTransition->setTransitionType($rcTransition->getConstant($key)); $oSlide->setTransition($oTransition); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'ODPresentation'); switch ($key) { case 'TRANSITION_BLINDS_HORIZONTAL': $this->assertContains('horizontal-stripes', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_BLINDS_VERTICAL': $this->assertContains('vertical-stripes', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_CHECKER_HORIZONTAL': $this->assertContains('horizontal-checkerboard', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_CHECKER_VERTICAL': $this->assertContains('vertical-checkerboard', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_CIRCLE_HORIZONTAL': $this->assertContains('none', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_CIRCLE_VERTICAL': $this->assertContains('none', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_COMB_HORIZONTAL': $this->assertContains('none', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_COMB_VERTICAL': $this->assertContains('none', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_COVER_DOWN': $this->assertContains('uncover-to-bottom', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_COVER_LEFT': $this->assertContains('uncover-to-left', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_COVER_LEFT_DOWN': $this->assertContains('uncover-to-lowerleft', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_COVER_LEFT_UP': $this->assertContains('uncover-to-upperleft', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_COVER_RIGHT': $this->assertContains('uncover-to-right', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_COVER_RIGHT_DOWN': $this->assertContains('uncover-to-lowerright', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_COVER_RIGHT_UP': $this->assertContains('uncover-to-upperright', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_COVER_UP': $this->assertContains('uncover-to-top', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_CUT': $this->assertContains('none', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_DIAMOND': $this->assertContains('none', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_DISSOLVE': $this->assertContains('dissolve', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_FADE': $this->assertContains('fade-from-center', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_NEWSFLASH': $this->assertContains('none', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_PLUS': $this->assertContains('close', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_PULL_DOWN': $this->assertContains('stretch-from-bottom', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_PULL_LEFT': $this->assertContains('stretch-from-left', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_PULL_RIGHT': $this->assertContains('stretch-from-right', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_PULL_UP': $this->assertContains('stretch-from-top', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_PUSH_DOWN': $this->assertContains('roll-from-bottom', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_PUSH_LEFT': $this->assertContains('roll-from-left', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_PUSH_RIGHT': $this->assertContains('roll-from-right', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_PUSH_UP': $this->assertContains('roll-from-top', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_RANDOM': $this->assertContains('random', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_RANDOMBAR_HORIZONTAL': $this->assertContains('horizontal-lines', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_RANDOMBAR_VERTICAL': $this->assertContains('vertical-lines', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_SPLIT_IN_HORIZONTAL': $this->assertContains('close-horizontal', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_SPLIT_OUT_HORIZONTAL': $this->assertContains('open-horizontal', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_SPLIT_IN_VERTICAL': $this->assertContains('close-vertical', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_SPLIT_OUT_VERTICAL': $this->assertContains('open-vertical', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_STRIPS_LEFT_DOWN': $this->assertContains('none', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_STRIPS_LEFT_UP': $this->assertContains('none', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_STRIPS_RIGHT_DOWN': $this->assertContains('none', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_STRIPS_RIGHT_UP': $this->assertContains('none', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_WEDGE': $this->assertContains('none', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_WIPE_DOWN': $this->assertContains('fade-from-bottom', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_WIPE_LEFT': $this->assertContains('fade-from-left', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_WIPE_RIGHT': $this->assertContains('fade-from-right', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_WIPE_UP': $this->assertContains('fade-from-top', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_ZOOM_IN': $this->assertContains('none', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; case 'TRANSITION_ZOOM_OUT': $this->assertContains('none', $pres->getElementAttribute($element, 'presentation:transition-style', 'content.xml')); break; } } $oTransition->setManualTrigger(true); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'ODPresentation'); $this->assertContains('manual', $pres->getElementAttribute($element, 'presentation:transition-type', 'content.xml')); }
public function testChartScatter() { $oSeries = new Series('Series', array('Jan' => 1, 'Feb' => 5, 'Mar' => 2)); $oSeries->setShowSeriesName(true); $oScatter = new Scatter(); $oScatter->addSeries($oSeries); $phpPowerPoint = new PhpPowerpoint(); $oSlide = $phpPowerPoint->getActiveSlide(); $oChart = $oSlide->createChartShape(); $oChart->getPlotArea()->setType($oScatter); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'ODPresentation'); $element = '/office:document-content/office:body/office:chart/chart:chart'; $this->assertTrue($pres->elementExists($element, 'Object 1/content.xml')); $this->assertEquals('chart:scatter', $pres->getElementAttribute($element, 'chart:class', 'Object 1/content.xml')); }
public function testTableWithRowspan() { $phpPowerPoint = new PhpPowerpoint(); $oSlide = $phpPowerPoint->getActiveSlide(); $oShape = $oSlide->createTableShape(4); $oShape->setHeight(200)->setWidth(600)->setOffsetX(150)->setOffsetY(300); $oRow = $oShape->createRow(); $oCell = $oRow->getCell(); $oCell->createTextRun('AAA'); $oCell->setRowSpan(2); $oRow = $oShape->createRow(); $oRow = $oShape->createRow(); $oCell = $oRow->getCell(); $oCell->createTextRun('BBB'); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'PowerPoint2007'); $element = '/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl/a:tr/a:tc'; $this->assertTrue($pres->elementExists($element . '[@rowSpan="2"]', 'ppt/slides/slide1.xml')); $this->assertTrue($pres->elementExists($element . '[@vMerge="1"]', 'ppt/slides/slide1.xml')); }
public function testStrokeDash() { $phpPowerPoint = new PhpPowerpoint(); $oSlide = $phpPowerPoint->getActiveSlide(); $oRichText1 = $oSlide->createRichTextShape(); $oRichText1->getBorder()->setColor(new Color('FF4672A8'))->setLineStyle(Border::LINE_SINGLE); $arrayDashStyle = array(Border::DASH_DASH, Border::DASH_DASHDOT, Border::DASH_DOT, Border::DASH_LARGEDASH, Border::DASH_LARGEDASHDOT, Border::DASH_LARGEDASHDOTDOT, Border::DASH_SYSDASH, Border::DASH_SYSDASHDOT, Border::DASH_SYSDASHDOTDOT, Border::DASH_SYSDOT); foreach ($arrayDashStyle as $style) { $oRichText1->getBorder()->setDashStyle($style); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'ODPresentation'); $element = '/office:document-styles/office:styles/draw:stroke-dash[@draw:name=\'strokeDash_' . $style . '\']'; $this->assertTrue($pres->elementExists($element, 'styles.xml')); $this->assertEquals('rect', $pres->getElementAttribute($element, 'draw:style', 'styles.xml')); $this->assertTrue($pres->attributeElementExists($element, 'draw:distance', 'styles.xml')); switch ($style) { case Border::DASH_DOT: case Border::DASH_SYSDOT: $this->assertTrue($pres->attributeElementExists($element, 'draw:dots1', 'styles.xml')); $this->assertTrue($pres->attributeElementExists($element, 'draw:dots1-length', 'styles.xml')); break; case Border::DASH_DASH: case Border::DASH_LARGEDASH: case Border::DASH_SYSDASH: $this->assertTrue($pres->attributeElementExists($element, 'draw:dots2', 'styles.xml')); $this->assertTrue($pres->attributeElementExists($element, 'draw:dots2-length', 'styles.xml')); break; case Border::DASH_DASHDOT: case Border::DASH_LARGEDASHDOT: case Border::DASH_LARGEDASHDOTDOT: case Border::DASH_SYSDASHDOT: case Border::DASH_SYSDASHDOTDOT: $this->assertTrue($pres->attributeElementExists($element, 'draw:dots1', 'styles.xml')); $this->assertTrue($pres->attributeElementExists($element, 'draw:dots1-length', 'styles.xml')); $this->assertTrue($pres->attributeElementExists($element, 'draw:dots2', 'styles.xml')); $this->assertTrue($pres->attributeElementExists($element, 'draw:dots2-length', 'styles.xml')); break; } } }