createMasterSlide()->createSlideLayout(); // Initialise slide collection and add one slide $this->createSlide(); $this->setActiveSlideIndex(); // Set initial document properties & layout $this->setDocumentProperties(new DocumentProperties()); $this->setPresentationProperties(new PresentationProperties()); $this->setLayout(new DocumentLayout()); } /** * Get properties * * @return \PhpOffice\PhpPresentation\DocumentProperties * @deprecated for getDocumentProperties */ public function getProperties() { return $this->getDocumentProperties(); } /** * Set properties * * @param \PhpOffice\PhpPresentation\DocumentProperties $value * @deprecated for setDocumentProperties * @return PhpPresentation */ public function setProperties(DocumentProperties $value) { return $this->setDocumentProperties($value); } /** * Get properties * * @return \PhpOffice\PhpPresentation\DocumentProperties */ public function getDocumentProperties() { return $this->documentProperties; } /** * Set properties * * @param \PhpOffice\PhpPresentation\DocumentProperties $value * @return PhpPresentation */ public function setDocumentProperties(DocumentProperties $value) { $this->documentProperties = $value; return $this; } /** * Get presentation properties * * @return \PhpOffice\PhpPresentation\PresentationProperties */ public function getPresentationProperties() { return $this->presentationProps; } /** * Set presentation properties * * @param \PhpOffice\PhpPresentation\PresentationProperties $value * @return PhpPresentation */ public function setPresentationProperties(PresentationProperties $value) { $this->presentationProps = $value; return $this; } /** * Get layout * * @return \PhpOffice\PhpPresentation\DocumentLayout */ public function getLayout() { return $this->layout; } /** * Set layout * * @param \PhpOffice\PhpPresentation\DocumentLayout $value * @return PhpPresentation */ public function setLayout(DocumentLayout $value) { $this->layout = $value; return $this; } /** * Get active slide * * @return \PhpOffice\PhpPresentation\Slide */ public function getActiveSlide() { return $this->slideCollection[$this->activeSlideIndex]; } /** * Create slide and add it to this presentation * * @return \PhpOffice\PhpPresentation\Slide * @throws \Exception */ public function createSlide() { $newSlide = new Slide($this); $this->addSlide($newSlide); return $newSlide; } /** * Add slide * * @param \PhpOffice\PhpPresentation\Slide $slide * @throws \Exception * @return \PhpOffice\PhpPresentation\Slide */ public function addSlide(Slide $slide = null) { $this->slideCollection[] = $slide; return $slide; } /** * Remove slide by index * * @param int $index Slide index * @throws \Exception * @return PhpPresentation */ public function removeSlideByIndex($index = 0) { if ($index > count($this->slideCollection) - 1) { throw new \Exception("Slide index is out of bounds."); } array_splice($this->slideCollection, $index, 1); return $this; } /** * Get slide by index * * @param int $index Slide index * @return \PhpOffice\PhpPresentation\Slide * @throws \Exception */ public function getSlide($index = 0) { if ($index > count($this->slideCollection) - 1) { throw new \Exception("Slide index is out of bounds."); } return $this->slideCollection[$index]; } /** * Get all slides * * @return \PhpOffice\PhpPresentation\Slide[] */ public function getAllSlides() { return $this->slideCollection; } /** * Get index for slide * * @param \PhpOffice\PhpPresentation\Slide\AbstractSlide $slide * @return int * @throws \Exception */ public function getIndex(Slide\AbstractSlide $slide) { $index = null; foreach ($this->slideCollection as $key => $value) { if ($value->getHashCode() == $slide->getHashCode()) { $index = $key; break; } } return $index; } /** * Get slide count * * @return int */ public function getSlideCount() { return count($this->slideCollection); } /** * Get active slide index * * @return int Active slide index */ public function getActiveSlideIndex() { return $this->activeSlideIndex; } /** * Set active slide index * * @param int $index Active slide index * @throws \Exception * @return \PhpOffice\PhpPresentation\Slide */ public function setActiveSlideIndex($index = 0) { if ($index > count($this->slideCollection) - 1) { throw new \Exception("Active slide index is out of bounds."); } $this->activeSlideIndex = $index; return $this->getActiveSlide(); } /** * Add external slide * * @param \PhpOffice\PhpPresentation\Slide $slide External slide to add * @throws \Exception * @return \PhpOffice\PhpPresentation\Slide */ public function addExternalSlide(Slide $slide) { $slide->rebindParent($this); $this->addMasterSlide($slide->getSlideLayout()->getSlideMaster()); return $this->addSlide($slide); } /** * Get slide iterator * * @return \PhpOffice\PhpPresentation\Slide\Iterator */ public function getSlideIterator() { return new Iterator($this); } /** * Create a masterslide and add it to this presentation * * @return \PhpOffice\PhpPresentation\Slide\SlideMaster * @throws \Exception */ public function createMasterSlide() { $newMasterSlide = new SlideMaster($this); $this->addMasterSlide($newMasterSlide); return $newMasterSlide; } /** * Add masterslide * * @param \PhpOffice\PhpPresentation\Slide\SlideMaster $slide * @return \PhpOffice\PhpPresentation\Slide\SlideMaster * @throws \Exception */ public function addMasterSlide(SlideMaster $slide = null) { $this->slideMasters[] = $slide; return $slide; } /** * Copy presentation (!= clone!) * * @return PhpPresentation * @throws \Exception */ public function copy() { $copied = clone $this; $slideCount = count($this->slideCollection); for ($i = 0; $i < $slideCount; ++$i) { $this->slideCollection[$i] = $this->slideCollection[$i]->copy(); $this->slideCollection[$i]->rebindParent($this); } return $copied; } /** * Mark a document as final * @param bool $state * @return PresentationProperties * @deprecated for getPresentationProperties()->markAsFinal() */ public function markAsFinal($state = true) { return $this->getPresentationProperties()->markAsFinal($state); } /** * Return if this document is marked as final * @return bool * @deprecated for getPresentationProperties()->isMarkedAsFinal() */ public function isMarkedAsFinal() { return $this->getPresentationProperties()->isMarkedAsFinal(); } /** * Set the zoom of the document (in percentage) * @param float $zoom * @return PresentationProperties * @deprecated for getPresentationProperties()->setZoom() */ public function setZoom($zoom = 1.0) { return $this->getPresentationProperties()->setZoom($zoom); } /** * Return the zoom (in percentage) * @return float * @deprecated for getPresentationProperties()->getZoom() */ public function getZoom() { return $this->getPresentationProperties()->getZoom(); } /** * @return \ArrayObject|Slide\SlideMaster[] */ public function getAllMasterSlides() { return $this->slideMasters; } /** * @param \ArrayObject|Slide\SlideMaster[] $slideMasters * @return $this */ public function setAllMasterSlides($slideMasters = array()) { if ($slideMasters instanceof \ArrayObject || is_array($slideMasters)) { $this->slideMasters = $slideMasters; } return $this; } }