예제 #1
0
 /**
  * Write Meta file to XML format
  *
  * @param 	PHPWord $pPHPWord
  * @return 	string 						XML Output
  * @throws 	Exception
  */
 public function writeMeta(PHPWord $pPHPWord = null)
 {
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
     } else {
         $objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8');
     // office:document-meta
     $objWriter->startElement('office:document-meta');
     $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
     $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
     $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
     $objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0');
     $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
     $objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#');
     $objWriter->writeAttribute('office:version', '1.2');
     // office:meta
     $objWriter->startElement('office:meta');
     // dc:creator
     $objWriter->writeElement('dc:creator', $pPHPWord->getProperties()->getLastModifiedBy());
     // dc:date
     $objWriter->writeElement('dc:date', gmdate('Y-m-d\\TH:i:s.000', $pPHPWord->getProperties()->getModified()));
     // dc:description
     $objWriter->writeElement('dc:description', $pPHPWord->getProperties()->getDescription());
     // dc:subject
     $objWriter->writeElement('dc:subject', $pPHPWord->getProperties()->getSubject());
     // dc:title
     $objWriter->writeElement('dc:title', $pPHPWord->getProperties()->getTitle());
     // meta:creation-date
     $objWriter->writeElement('meta:creation-date', gmdate('Y-m-d\\TH:i:s.000', $pPHPWord->getProperties()->getCreated()));
     // meta:initial-creator
     $objWriter->writeElement('meta:initial-creator', $pPHPWord->getProperties()->getCreator());
     // meta:keyword
     $objWriter->writeElement('meta:keyword', $pPHPWord->getProperties()->getKeywords());
     // @todo : Where these properties are written ?
     // $pPHPWord->getProperties()->getCategory()
     // $pPHPWord->getProperties()->getCompany()
     $objWriter->endElement();
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
예제 #2
0
 protected function _writeTextBreak(PHPWord_Shared_XMLWriter $objWriter = null)
 {
     $objWriter->writeElement('w:p', null);
 }
예제 #3
0
파일: Base.php 프로젝트: tmlsoft/main
 protected function _writeCellStyle(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Style_Cell $style = null)
 {
     $bgColor = $style->getBgColor();
     $valign = $style->getVAlign();
     $textDir = $style->getTextDirection();
     $brdSz = $style->getBorderSize();
     $brdCol = $style->getBorderColor();
     $bTop = !is_null($brdSz[0]) ? true : false;
     $bLeft = !is_null($brdSz[1]) ? true : false;
     $bRight = !is_null($brdSz[2]) ? true : false;
     $bBottom = !is_null($brdSz[3]) ? true : false;
     $borders = $bTop || $bLeft || $bRight || $bBottom ? true : false;
     $gridSpan = $style->getGridSpan();
     if ($gridSpan) {
         $objWriter->startElement('w:gridSpan');
         $objWriter->writeAttribute('w:val', $gridSpan);
         $objWriter->endElement();
     }
     $vMerge = $style->getVMerge();
     if (!is_null($vMerge)) {
         $objWriter->startElement('w:vMerge');
         $objWriter->writeAttribute('w:val', $vMerge);
         $objWriter->endElement();
     } else {
         if (isset($vMerge)) {
             $objWriter->writeElement('w:vMerge', null);
         }
     }
     $styles = !is_null($bgColor) || !is_null($valign) || !is_null($textDir) || $borders ? true : false;
     if ($styles) {
         if (!is_null($textDir)) {
             $objWriter->startElement('w:textDirection');
             $objWriter->writeAttribute('w:val', $textDir);
             $objWriter->endElement();
         }
         if (!is_null($bgColor)) {
             $objWriter->startElement('w:shd');
             $objWriter->writeAttribute('w:val', 'clear');
             $objWriter->writeAttribute('w:color', 'auto');
             $objWriter->writeAttribute('w:fill', $bgColor);
             $objWriter->endElement();
         }
         if (!is_null($valign)) {
             $objWriter->startElement('w:jc');
             $objWriter->writeAttribute('w:val', $valign);
             $objWriter->endElement();
         }
         if ($borders) {
             $_defaultColor = $style->getDefaultBorderColor();
             $objWriter->startElement('w:tcBorders');
             if ($bTop) {
                 if (is_null($brdCol[0])) {
                     $brdCol[0] = $_defaultColor;
                 }
                 $objWriter->startElement('w:top');
                 $objWriter->writeAttribute('w:val', 'single');
                 $objWriter->writeAttribute('w:sz', $brdSz[0]);
                 $objWriter->writeAttribute('w:color', $brdCol[0]);
                 $objWriter->endElement();
             }
             if ($bLeft) {
                 if (is_null($brdCol[1])) {
                     $brdCol[1] = $_defaultColor;
                 }
                 $objWriter->startElement('w:left');
                 $objWriter->writeAttribute('w:val', 'single');
                 $objWriter->writeAttribute('w:sz', $brdSz[1]);
                 $objWriter->writeAttribute('w:color', $brdCol[1]);
                 $objWriter->endElement();
             }
             if ($bRight) {
                 if (is_null($brdCol[2])) {
                     $brdCol[2] = $_defaultColor;
                 }
                 $objWriter->startElement('w:right');
                 $objWriter->writeAttribute('w:val', 'single');
                 $objWriter->writeAttribute('w:sz', $brdSz[2]);
                 $objWriter->writeAttribute('w:color', $brdCol[2]);
                 $objWriter->endElement();
             }
             if ($bBottom) {
                 if (is_null($brdCol[3])) {
                     $brdCol[3] = $_defaultColor;
                 }
                 $objWriter->startElement('w:bottom');
                 $objWriter->writeAttribute('w:val', 'single');
                 $objWriter->writeAttribute('w:sz', $brdSz[3]);
                 $objWriter->writeAttribute('w:color', $brdCol[3]);
                 $objWriter->endElement();
             }
             $objWriter->endElement();
         }
     }
 }
예제 #4
0
 public function writeDocPropsCore(PHPWord $pPHPWord = null)
 {
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
     } else {
         $objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // cp:coreProperties
     $objWriter->startElement('cp:coreProperties');
     $objWriter->writeAttribute('xmlns:cp', 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties');
     $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
     $objWriter->writeAttribute('xmlns:dcterms', 'http://purl.org/dc/terms/');
     $objWriter->writeAttribute('xmlns:dcmitype', 'http://purl.org/dc/dcmitype/');
     $objWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
     // dc:creator
     $objWriter->writeElement('dc:creator', $pPHPWord->getProperties()->getCreator());
     // cp:lastModifiedBy
     $objWriter->writeElement('cp:lastModifiedBy', $pPHPWord->getProperties()->getLastModifiedBy());
     // dcterms:created
     $objWriter->startElement('dcterms:created');
     $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
     $objWriter->writeRaw(date(DATE_W3C, $pPHPWord->getProperties()->getCreated()));
     $objWriter->endElement();
     // dcterms:modified
     $objWriter->startElement('dcterms:modified');
     $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
     $objWriter->writeRaw(date(DATE_W3C, $pPHPWord->getProperties()->getModified()));
     $objWriter->endElement();
     // dc:title
     $objWriter->writeElement('dc:title', $pPHPWord->getProperties()->getTitle());
     // dc:description
     $objWriter->writeElement('dc:description', $pPHPWord->getProperties()->getDescription());
     // dc:subject
     $objWriter->writeElement('dc:subject', $pPHPWord->getProperties()->getSubject());
     // cp:keywords
     $objWriter->writeElement('cp:keywords', $pPHPWord->getProperties()->getKeywords());
     // cp:category
     $objWriter->writeElement('cp:category', $pPHPWord->getProperties()->getCategory());
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
예제 #5
0
 public function toXml(PHPWord_Shared_XMLWriter &$objWriter = NULL)
 {
     if (isset($objWriter)) {
         $font = $this->getName();
         $bold = $this->getBold();
         $italic = $this->getItalic();
         $color = $this->getColor();
         $size = $this->getSize();
         $fgColor = $this->getFgColor();
         $striketrough = $this->getStrikethrough();
         $underline = $this->getUnderline();
         $superscript = $this->getSuperScript();
         $subscript = $this->getSubScript();
         $objWriter->startElement('w:rPr');
         // Font
         if ($font != 'Arial') {
             $objWriter->startElement('w:rFonts');
             $objWriter->writeAttribute('w:ascii', $font);
             $objWriter->writeAttribute('w:hAnsi', $font);
             $objWriter->writeAttribute('w:cs', $font);
             $objWriter->endElement();
         }
         // Color
         if ($color != '000000') {
             $objWriter->startElement('w:color');
             $objWriter->writeAttribute('w:val', $color);
             $objWriter->endElement();
         }
         // Size
         if ($size != 20) {
             $objWriter->startElement('w:sz');
             $objWriter->writeAttribute('w:val', $size);
             $objWriter->endElement();
             $objWriter->startElement('w:szCs');
             $objWriter->writeAttribute('w:val', $size);
             $objWriter->endElement();
         }
         // Bold
         if ($bold) {
             $objWriter->writeElement('w:b', null);
         }
         // Superscript
         if ($superscript) {
             $objWriter->startElement('w:vertAlign');
             $objWriter->writeAttribute('w:val', 'superscript');
             $objWriter->endElement();
         }
         // Subscript
         if ($subscript) {
             $objWriter->startElement('w:vertAlign');
             $objWriter->writeAttribute('w:val', 'subscript');
             $objWriter->endElement();
         }
         // Italic
         if ($italic) {
             $objWriter->writeElement('w:i', null);
             $objWriter->writeElement('w:iCs', null);
         }
         // Underline
         if (!is_null($underline) && $underline != 'none') {
             $objWriter->startElement('w:u');
             $objWriter->writeAttribute('w:val', $underline);
             $objWriter->endElement();
         }
         // Striketrough
         if ($striketrough) {
             $objWriter->writeElement('w:strike', null);
         }
         // Foreground-Color
         if (!is_null($fgColor)) {
             $objWriter->startElement('w:highlight');
             $objWriter->writeAttribute('w:val', $fgColor);
             $objWriter->endElement();
         }
         $objWriter->endElement();
     }
 }