/** * 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(); }
protected function _writeTextBreak(PHPWord_Shared_XMLWriter $objWriter = null) { $objWriter->writeElement('w:p', null); }
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(); } } }
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(); }
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(); } }