richTextParagraphs = array( new Paragraph() ); $this->activeParagraph = 0; // Set fill $this->fill = new Fill(); // Set borders $this->borders = new Borders(); } /** * Get active paragraph index * * @return int */ public function getActiveParagraphIndex() { return $this->activeParagraph; } /** * Get active paragraph * * @return \PhpOffice\PhpPresentation\Shape\RichText\Paragraph */ public function getActiveParagraph() { return $this->richTextParagraphs[$this->activeParagraph]; } /** * Set active paragraph * * @param int $index * @throws \Exception * @return \PhpOffice\PhpPresentation\Shape\RichText\Paragraph */ public function setActiveParagraph($index = 0) { if ($index >= count($this->richTextParagraphs)) { throw new \Exception("Invalid paragraph count."); } $this->activeParagraph = $index; return $this->getActiveParagraph(); } /** * Get paragraph * * @param int $index * @throws \Exception * @return \PhpOffice\PhpPresentation\Shape\RichText\Paragraph */ public function getParagraph($index = 0) { if ($index >= count($this->richTextParagraphs)) { throw new \Exception("Invalid paragraph count."); } return $this->richTextParagraphs[$index]; } /** * Create paragraph * * @return \PhpOffice\PhpPresentation\Shape\RichText\Paragraph * @throws \Exception */ public function createParagraph() { $this->richTextParagraphs[] = new Paragraph(); $totalRichTextParagraphs = count($this->richTextParagraphs); $this->activeParagraph = $totalRichTextParagraphs - 1; if ($totalRichTextParagraphs > 1) { $alignment = clone $this->getActiveParagraph()->getAlignment(); $font = clone $this->getActiveParagraph()->getFont(); $bulletStyle = clone $this->getActiveParagraph()->getBulletStyle(); $this->getActiveParagraph()->setAlignment($alignment); $this->getActiveParagraph()->setFont($font); $this->getActiveParagraph()->setBulletStyle($bulletStyle); } return $this->getActiveParagraph(); } /** * Add text * * @param \PhpOffice\PhpPresentation\Shape\RichText\TextElementInterface $pText Rich text element * @throws \Exception * @return \PhpOffice\PhpPresentation\Shape\Table\Cell */ public function addText(TextElementInterface $pText = null) { $this->richTextParagraphs[$this->activeParagraph]->addText($pText); return $this; } /** * Create text (can not be formatted !) * * @param string $pText Text * @return \PhpOffice\PhpPresentation\Shape\RichText\TextElement * @throws \Exception */ public function createText($pText = '') { return $this->richTextParagraphs[$this->activeParagraph]->createText($pText); } /** * Create break * * @return \PhpOffice\PhpPresentation\Shape\RichText\BreakElement * @throws \Exception */ public function createBreak() { return $this->richTextParagraphs[$this->activeParagraph]->createBreak(); } /** * Create text run (can be formatted) * * @param string $pText Text * @return \PhpOffice\PhpPresentation\Shape\RichText\Run * @throws \Exception */ public function createTextRun($pText = '') { return $this->richTextParagraphs[$this->activeParagraph]->createTextRun($pText); } /** * Get plain text * * @return string */ public function getPlainText() { // Return value $returnValue = ''; // Loop trough all \PhpOffice\PhpPresentation\Shape\RichText\Paragraph foreach ($this->richTextParagraphs as $p) { $returnValue .= $p->getPlainText(); } // Return return $returnValue; } /** * Convert to string * * @return string */ public function __toString() { return $this->getPlainText(); } /** * Get paragraphs * * @return \PhpOffice\PhpPresentation\Shape\RichText\Paragraph[] */ public function getParagraphs() { return $this->richTextParagraphs; } /** * Set paragraphs * * @param \PhpOffice\PhpPresentation\Shape\RichText\Paragraph[] $paragraphs Array of paragraphs * @throws \Exception * @return \PhpOffice\PhpPresentation\Shape\Table\Cell */ public function setParagraphs($paragraphs = null) { if (!is_array($paragraphs)) { throw new \Exception("Invalid \PhpOffice\PhpPresentation\Shape\RichText\Paragraph[] array passed."); } $this->richTextParagraphs = $paragraphs; $this->activeParagraph = count($this->richTextParagraphs) - 1; return $this; } /** * Get fill * * @return \PhpOffice\PhpPresentation\Style\Fill */ public function getFill() { return $this->fill; } /** * Set fill * * @param \PhpOffice\PhpPresentation\Style\Fill $fill * @return \PhpOffice\PhpPresentation\Shape\Table\Cell */ public function setFill(Fill $fill) { $this->fill = $fill; return $this; } /** * Get borders * * @return \PhpOffice\PhpPresentation\Style\Borders */ public function getBorders() { return $this->borders; } /** * Set borders * * @param \PhpOffice\PhpPresentation\Style\Borders $borders * @return \PhpOffice\PhpPresentation\Shape\Table\Cell */ public function setBorders(Borders $borders) { $this->borders = $borders; return $this; } /** * Get width * * @return int */ public function getWidth() { return $this->width; } /** * Set width * * @param int $value * @return \PhpOffice\PhpPresentation\Shape\Table\Cell */ public function setWidth($value = 0) { $this->width = $value; return $this; } /** * Get colSpan * * @return int */ public function getColSpan() { return $this->colSpan; } /** * Set colSpan * * @param int $value * @return \PhpOffice\PhpPresentation\Shape\Table\Cell */ public function setColSpan($value = 0) { $this->colSpan = $value; return $this; } /** * Get rowSpan * * @return int */ public function getRowSpan() { return $this->rowSpan; } /** * Set rowSpan * * @param int $value * @return \PhpOffice\PhpPresentation\Shape\Table\Cell */ public function setRowSpan($value = 0) { $this->rowSpan = $value; return $this; } /** * Get hash code * * @return string Hash code */ public function getHashCode() { $hashElements = ''; foreach ($this->richTextParagraphs as $element) { $hashElements .= $element->getHashCode(); } return md5($hashElements . $this->fill->getHashCode() . $this->borders->getHashCode() . $this->width . __CLASS__); } /** * Get hash index * * Note that this index may vary during script execution! Only reliable moment is * while doing a write of a workbook and when changes are not allowed. * * @return string Hash index */ public function getHashIndex() { return $this->hashIndex; } /** * Set hash index * * Note that this index may vary during script execution! Only reliable moment is * while doing a write of a workbook and when changes are not allowed. * * @param string $value Hash index */ public function setHashIndex($value) { $this->hashIndex = $value; } }