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(); } }