コード例 #1
0
ファイル: Docx.php プロジェクト: fredcido/simuweb
 /**
  *
  * @param DOMElement $element
  * @param PHPWord_Section_Table $table
  * @param array $cellStyle
  * @param array $fontStyle
  * @param array $paragraphStyle 
  */
 protected function _addCell($element, $table, $cellStyle = array(), $fontStyle = array(), $paragraphStyle = array())
 {
     $cellStyle += array('valign' => 'center', 'borderSize' => 10, 'borderColor' => 'DDDDDD');
     $fontStyle += array('size' => 10, 'name' => 'Arial');
     $paragraphStyle += array('align' => 'center', 'spaceBefore' => 50, 'spaceAfter' => 50);
     if ($element->hasAttribute('colspan')) {
         $cellStyle['gridSpan'] = $element->getAttribute('colspan');
     }
     $text = trim($element->nodeValue);
     $table->addCell(5000, $cellStyle)->addText($text, $fontStyle, $paragraphStyle);
 }
コード例 #2
0
ファイル: Base.php プロジェクト: heruprambadi/sim_penyuratan
 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)) {
                 $objWriter->startElement('w:trPr');
                 $objWriter->startElement('w:trHeight');
                 $objWriter->writeAttribute('w:val', $height);
                 $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();
     }
 }
コード例 #3
0
ファイル: Base.php プロジェクト: certainlyakey/linguamore
 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();
             }
         }
         // Insert a tblGrid element so that Open/Libre office can size the
         // table width properly. Word can work out how to size the table
         // appropriately without this although it will add this element in if
         // it is not present following a save. Also, the scaling of widths in
         // this element can be switched on or off - this has no effect in Word
         // though - an oversized table will still be reduced to fit into the
         // available width.
         if (!is_null($table->getSectionSettings())) {
             $reduceTableWidthsToFit = $table->getSectionSettings()->getReduceTableWidthsToFit();
             $section_width = $table->getSectionSettings()->insideMarginsPageW();
             $objWriter->startElement('w:tblGrid');
             $cell_widths = array();
             for ($i = 0; $i < $_cRows; $i++) {
                 $row = $_rows[$i];
                 $table_width = 0;
                 foreach ($row as $cell) {
                     $table_width += $cell->getWidth();
                 }
                 $horizontal_offset = 0;
                 foreach ($row as $cell) {
                     $width = $cell->getWidth();
                     if ($table_width > $section_width && $reduceTableWidthsToFit) {
                         // Scale the table to fit in the section width if
                         // it is larger than the section width:
                         $width = $width * ($section_width / $table_width);
                     }
                     $cell_widths[$horizontal_offset + $width] = $width;
                     $horizontal_offset = $horizontal_offset + $width;
                 }
             }
             ksort($cell_widths);
             $current_horizontal_offset = 0;
             foreach ($cell_widths as $horizontal_offset => $cell_width) {
                 $objWriter->startElement('w:gridCol');
                 $column_width = $horizontal_offset - $current_horizontal_offset;
                 $current_horizontal_offset = $horizontal_offset;
                 $objWriter->writeAttribute('w:w', $column_width);
                 $objWriter->writeAttribute('w:type', 'dxa');
                 $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)) {
                 $objWriter->startElement('w:trPr');
                 $objWriter->startElement('w:trHeight');
                 $objWriter->writeAttribute('w:val', $height);
                 $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();
     }
 }