Exemplo n.º 1
0
 /**
  * Get all styles of each elements in container recursively
  *
  * Table style can be null or string of the style name
  *
  * @param \PhpOffice\PhpWord\Element\AbstractContainer $container
  * @param int &$paragraphStyleCount
  * @param int &$fontStyleCount
  * @return void
  * @todo Simplify the logic
  */
 private function getContainerStyle($container, &$paragraphStyleCount, &$fontStyleCount)
 {
     $elements = $container->getElements();
     foreach ($elements as $element) {
         if ($element instanceof TextRun) {
             $this->getContainerStyle($element, $paragraphStyleCount, $fontStyleCount);
         } elseif ($element instanceof Text) {
             $this->getElementStyle($element, $paragraphStyleCount, $fontStyleCount);
         } elseif ($element instanceof Image) {
             $style = $element->getStyle();
             $style->setStyleName('fr' . $element->getMediaIndex());
             $this->autoStyles['Image'][] = $style;
         } elseif ($element instanceof Table) {
             $style = $element->getStyle();
             if ($style === null) {
                 $style = new TableStyle();
             } elseif (is_string($style)) {
                 $style = Style::getStyle($style);
             }
             $style->setStyleName($element->getElementId());
             $this->autoStyles['Table'][] = $style;
         }
     }
 }