PhpOffice\PhpPresentation\Writer\PowerPoint2007\PptSlides::writeParagraphs PHP Method

writeParagraphs() protected method

Write paragraphs
protected writeParagraphs ( PhpOffice\Common\XMLWriter $objWriter, Paragraph[] $paragraphs, boolean $bIsPlaceholder = false )
$objWriter PhpOffice\Common\XMLWriter XML Writer
$paragraphs PhpOffice\PhpPresentation\Shape\RichText\Paragraph[]
$bIsPlaceholder boolean
    protected function writeParagraphs(XMLWriter $objWriter, $paragraphs, $bIsPlaceholder = false)
    {
        // Loop trough paragraphs
        foreach ($paragraphs as $paragraph) {
            // a:p
            $objWriter->startElement('a:p');
            // a:pPr
            if (!$bIsPlaceholder) {
                $objWriter->startElement('a:pPr');
                $objWriter->writeAttribute('algn', $paragraph->getAlignment()->getHorizontal());
                $objWriter->writeAttribute('fontAlgn', $paragraph->getAlignment()->getVertical());
                $objWriter->writeAttribute('marL', CommonDrawing::pixelsToEmu($paragraph->getAlignment()->getMarginLeft()));
                $objWriter->writeAttribute('marR', CommonDrawing::pixelsToEmu($paragraph->getAlignment()->getMarginRight()));
                $objWriter->writeAttribute('indent', CommonDrawing::pixelsToEmu($paragraph->getAlignment()->getIndent()));
                $objWriter->writeAttribute('lvl', $paragraph->getAlignment()->getLevel());
                // Bullet type specified?
                if ($paragraph->getBulletStyle()->getBulletType() != Bullet::TYPE_NONE) {
                    // a:buFont
                    $objWriter->startElement('a:buFont');
                    $objWriter->writeAttribute('typeface', $paragraph->getBulletStyle()->getBulletFont());
                    $objWriter->endElement();
                    if ($paragraph->getBulletStyle()->getBulletType() == Bullet::TYPE_BULLET) {
                        // a:buChar
                        $objWriter->startElement('a:buChar');
                        $objWriter->writeAttribute('char', $paragraph->getBulletStyle()->getBulletChar());
                        $objWriter->endElement();
                    } elseif ($paragraph->getBulletStyle()->getBulletType() == Bullet::TYPE_NUMERIC) {
                        // a:buAutoNum
                        $objWriter->startElement('a:buAutoNum');
                        $objWriter->writeAttribute('type', $paragraph->getBulletStyle()->getBulletNumericStyle());
                        if ($paragraph->getBulletStyle()->getBulletNumericStartAt() != 1) {
                            $objWriter->writeAttribute('startAt', $paragraph->getBulletStyle()->getBulletNumericStartAt());
                        }
                        $objWriter->endElement();
                    }
                    if ($paragraph->getBulletStyle()->getBulletColor() instanceof Color) {
                        $objWriter->startElement('a:buClr');
                        $this->writeColor($objWriter, $paragraph->getBulletStyle()->getBulletColor());
                        $objWriter->endElement();
                    }
                }
                $objWriter->startElement('a:lnSpc');
                $objWriter->startElement('a:spcPct');
                $objWriter->writeAttribute('val', $paragraph->getLineSpacing() * 1000);
                $objWriter->endElement();
                $objWriter->endElement();
                $objWriter->endElement();
            }
            // Loop trough rich text elements
            $elements = $paragraph->getRichTextElements();
            foreach ($elements as $element) {
                if ($element instanceof BreakElement) {
                    // a:br
                    $objWriter->writeElement('a:br', null);
                } elseif ($element instanceof Run || $element instanceof TextElement) {
                    // a:r
                    $objWriter->startElement('a:r');
                    // a:rPr
                    if ($element instanceof Run && !$bIsPlaceholder) {
                        // a:rPr
                        $objWriter->startElement('a:rPr');
                        // Lang
                        $objWriter->writeAttribute('lang', $element->getLanguage() ? $element->getLanguage() : 'en-US');
                        $objWriter->writeAttributeIf($element->getFont()->isBold(), 'b', '1');
                        $objWriter->writeAttributeIf($element->getFont()->isItalic(), 'i', '1');
                        $objWriter->writeAttributeIf($element->getFont()->isStrikethrough(), 'strike', 'sngStrike');
                        // Size
                        $objWriter->writeAttribute('sz', $element->getFont()->getSize() * 100);
                        // Underline
                        $objWriter->writeAttribute('u', $element->getFont()->getUnderline());
                        // Superscript / subscript
                        $objWriter->writeAttributeIf($element->getFont()->isSuperScript(), 'baseline', '30000');
                        $objWriter->writeAttributeIf($element->getFont()->isSubScript(), 'baseline', '-25000');
                        // Color - a:solidFill
                        $objWriter->startElement('a:solidFill');
                        $this->writeColor($objWriter, $element->getFont()->getColor());
                        $objWriter->endElement();
                        // Font - a:latin
                        $objWriter->startElement('a:latin');
                        $objWriter->writeAttribute('typeface', $element->getFont()->getName());
                        $objWriter->endElement();
                        // a:hlinkClick
                        $this->writeHyperlink($objWriter, $element);
                        $objWriter->endElement();
                    }
                    // t
                    $objWriter->startElement('a:t');
                    $objWriter->writeCData(Text::controlCharacterPHP2OOXML($element->getText()));
                    $objWriter->endElement();
                    $objWriter->endElement();
                }
            }
            $objWriter->endElement();
        }
    }