コード例 #1
0
 /**
  * Write style.
  *
  * @return void
  */
 public function write()
 {
     $style = $this->getStyle();
     if (!$style instanceof SectionStyle) {
         return;
     }
     $xmlWriter = $this->getXmlWriter();
     // Break type
     $breakType = $style->getBreakType();
     $xmlWriter->writeElementIf(!is_null($breakType), 'w:type', 'w:val', $breakType);
     // Page size & orientation
     $xmlWriter->startElement('w:pgSz');
     $xmlWriter->writeAttribute('w:orient', $style->getOrientation());
     $xmlWriter->writeAttribute('w:w', $style->getPageSizeW());
     $xmlWriter->writeAttribute('w:h', $style->getPageSizeH());
     $xmlWriter->endElement();
     // w:pgSz
     // Margins
     $margins = array('w:top' => array('getMarginTop', SectionStyle::DEFAULT_MARGIN), 'w:right' => array('getMarginRight', SectionStyle::DEFAULT_MARGIN), 'w:bottom' => array('getMarginBottom', SectionStyle::DEFAULT_MARGIN), 'w:left' => array('getMarginLeft', SectionStyle::DEFAULT_MARGIN), 'w:header' => array('getHeaderHeight', SectionStyle::DEFAULT_HEADER_HEIGHT), 'w:footer' => array('getFooterHeight', SectionStyle::DEFAULT_FOOTER_HEIGHT), 'w:gutter' => array('getGutter', SectionStyle::DEFAULT_GUTTER));
     $xmlWriter->startElement('w:pgMar');
     foreach ($margins as $attribute => $value) {
         list($method, $default) = $value;
         $xmlWriter->writeAttribute($attribute, $this->convertTwip($style->{$method}(), $default));
     }
     $xmlWriter->endElement();
     // Borders
     if ($style->hasBorder()) {
         $xmlWriter->startElement('w:pgBorders');
         $xmlWriter->writeAttribute('w:offsetFrom', 'page');
         $styleWriter = new MarginBorder($xmlWriter);
         $styleWriter->setSizes($style->getBorderSize());
         $styleWriter->setColors($style->getBorderColor());
         $styleWriter->setAttributes(array('space' => '24'));
         $styleWriter->write();
         $xmlWriter->endElement();
     }
     // Columns
     $colsSpace = $style->getColsSpace();
     $xmlWriter->startElement('w:cols');
     $xmlWriter->writeAttribute('w:num', $style->getColsNum());
     $xmlWriter->writeAttribute('w:space', $this->convertTwip($colsSpace, SectionStyle::DEFAULT_COLUMN_SPACING));
     $xmlWriter->endElement();
     // Page numbering start
     $pageNum = $style->getPageNumberingStart();
     $xmlWriter->writeElementIf(!is_null($pageNum), 'w:pgNumType', 'w:start', $pageNum);
     // Line numbering
     $styleWriter = new LineNumbering($xmlWriter, $style->getLineNumbering());
     $styleWriter->write();
 }
コード例 #2
0
ファイル: Section.php プロジェクト: kaantunc/MYK-BOR
 /**
  * Write style
  */
 public function write()
 {
     if (!$this->style instanceof \PhpOffice\PhpWord\Style\Section) {
         return;
     }
     // Section break
     if (!is_null($this->style->getBreakType())) {
         $this->xmlWriter->startElement('w:type');
         $this->xmlWriter->writeAttribute('w:val', $this->style->getBreakType());
         $this->xmlWriter->endElement();
     }
     // Page size & orientation
     $this->xmlWriter->startElement('w:pgSz');
     $this->xmlWriter->writeAttribute('w:orient', $this->style->getOrientation());
     $this->xmlWriter->writeAttribute('w:w', $this->style->getPageSizeW());
     $this->xmlWriter->writeAttribute('w:h', $this->style->getPageSizeH());
     $this->xmlWriter->endElement();
     // w:pgSz
     // Margins
     $this->xmlWriter->startElement('w:pgMar');
     $this->xmlWriter->writeAttribute('w:top', $this->convertTwip($this->style->getMarginTop(), SectionStyle::DEFAULT_MARGIN));
     $this->xmlWriter->writeAttribute('w:right', $this->convertTwip($this->style->getMarginRight(), SectionStyle::DEFAULT_MARGIN));
     $this->xmlWriter->writeAttribute('w:bottom', $this->convertTwip($this->style->getMarginBottom(), SectionStyle::DEFAULT_MARGIN));
     $this->xmlWriter->writeAttribute('w:left', $this->convertTwip($this->style->getMarginLeft(), SectionStyle::DEFAULT_MARGIN));
     $this->xmlWriter->writeAttribute('w:header', $this->convertTwip($this->style->getHeaderHeight(), SectionStyle::DEFAULT_HEADER_HEIGHT));
     $this->xmlWriter->writeAttribute('w:footer', $this->convertTwip($this->style->getFooterHeight(), SectionStyle::DEFAULT_FOOTER_HEIGHT));
     $this->xmlWriter->writeAttribute('w:gutter', $this->convertTwip($this->style->getGutter(), SectionStyle::DEFAULT_GUTTER));
     $this->xmlWriter->endElement();
     // Borders
     $borders = $this->style->getBorderSize();
     $hasBorders = false;
     for ($i = 0; $i < 4; $i++) {
         if (!is_null($borders[$i])) {
             $hasBorders = true;
             break;
         }
     }
     if ($hasBorders) {
         $styleWriter = new MarginBorder($this->xmlWriter);
         $styleWriter->setSizes($borders);
         $styleWriter->setColors($this->style->getBorderColor());
         $styleWriter->setAttributes(array('space' => '24'));
         $this->xmlWriter->startElement('w:pgBorders');
         $this->xmlWriter->writeAttribute('w:offsetFrom', 'page');
         $styleWriter->write();
         $this->xmlWriter->endElement();
     }
     // Page numbering
     if (!is_null($this->style->getPageNumberingStart())) {
         $this->xmlWriter->startElement('w:pgNumType');
         $this->xmlWriter->writeAttribute('w:start', $this->style->getPageNumberingStart());
         $this->xmlWriter->endElement();
     }
     // Columns
     $this->xmlWriter->startElement('w:cols');
     $this->xmlWriter->writeAttribute('w:num', $this->style->getColsNum());
     $this->xmlWriter->writeAttribute('w:space', $this->convertTwip($this->style->getColsSpace(), SectionStyle::DEFAULT_COLUMN_SPACING));
     $this->xmlWriter->endElement();
     // Line numbering
     $styleWriter = new LineNumbering($this->xmlWriter, $this->style->getLineNumbering());
     $styleWriter->write();
 }