Example #1
0
 protected function _writeTable(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Table $table)
 {
     $_rows = $table->getRows();
     $_cRows = count($_rows);
     if ($_cRows > 0) {
         $objWriter->startElement('w:tbl');
         $tblStyle = $table->getStyle();
         if ($tblStyle instanceof PHPWord_Style_Table) {
             $this->_writeTableStyle($objWriter, $tblStyle);
         } else {
             if (!empty($tblStyle)) {
                 $objWriter->startElement('w:tblPr');
                 $objWriter->startElement('w:tblStyle');
                 $objWriter->writeAttribute('w:val', $tblStyle);
                 $objWriter->endElement();
                 $objWriter->endElement();
             }
         }
         $_heights = $table->getRowHeights();
         for ($i = 0; $i < $_cRows; $i++) {
             $row = $_rows[$i];
             $height = $_heights[$i];
             $objWriter->startElement('w:tr');
             if (!is_null($height) || $table->getCantSplit()) {
                 $objWriter->startElement('w:trPr');
                 if (!is_null($height)) {
                     $objWriter->startElement('w:trHeight');
                     $objWriter->writeAttribute('w:val', $height);
                     $objWriter->endElement();
                 }
                 if ($table->getCantSplit()) {
                     $objWriter->startElement('w:cantSplit');
                     $objWriter->endElement();
                 }
                 $objWriter->endElement();
             }
             foreach ($row as $cell) {
                 $objWriter->startElement('w:tc');
                 $cellStyle = $cell->getStyle();
                 $width = $cell->getWidth();
                 $objWriter->startElement('w:tcPr');
                 $objWriter->startElement('w:tcW');
                 $objWriter->writeAttribute('w:w', $width);
                 $objWriter->writeAttribute('w:type', 'dxa');
                 $objWriter->endElement();
                 if ($cellStyle instanceof PHPWord_Style_Cell) {
                     $this->_writeCellStyle($objWriter, $cellStyle);
                 }
                 $objWriter->endElement();
                 $_elements = $cell->getElements();
                 if (count($_elements) > 0) {
                     foreach ($_elements as $element) {
                         if ($element instanceof PHPWord_Section_Text) {
                             $this->_writeText($objWriter, $element);
                         } elseif ($element instanceof PHPWord_Section_TextRun) {
                             $this->_writeTextRun($objWriter, $element);
                         } elseif ($element instanceof PHPWord_Section_Link) {
                             $this->_writeLink($objWriter, $element);
                         } elseif ($element instanceof PHPWord_Section_TextBreak) {
                             $this->_writeTextBreak($objWriter);
                         } elseif ($element instanceof PHPWord_Section_ListItem) {
                             $this->_writeListItem($objWriter, $element);
                         } elseif ($element instanceof PHPWord_Section_Image || $element instanceof PHPWord_Section_MemoryImage) {
                             $this->_writeImage($objWriter, $element);
                         } elseif ($element instanceof PHPWord_Section_Object) {
                             $this->_writeObject($objWriter, $element);
                         } elseif ($element instanceof PHPWord_Section_Footer_PreserveText) {
                             $this->_writePreserveText($objWriter, $element);
                         }
                     }
                 } else {
                     $this->_writeTextBreak($objWriter);
                 }
                 $objWriter->endElement();
             }
             $objWriter->endElement();
         }
         $objWriter->endElement();
     }
 }