diff --git a/src/PhpWord/Settings.php b/src/PhpWord/Settings.php
index 9fc11568..b8dfe8cd 100644
--- a/src/PhpWord/Settings.php
+++ b/src/PhpWord/Settings.php
@@ -237,7 +237,8 @@ class Settings
*/
public static function setMeasurementUnit($value)
{
- $units = array(self::UNIT_TWIP, self::UNIT_CM, self::UNIT_MM, self::UNIT_INCH, self::UNIT_POINT, self::UNIT_PICA);
+ $units = array(self::UNIT_TWIP, self::UNIT_CM, self::UNIT_MM, self::UNIT_INCH,
+ self::UNIT_POINT, self::UNIT_PICA);
if (!in_array($value, $units)) {
return false;
}
diff --git a/src/PhpWord/Template.php b/src/PhpWord/Template.php
index 97bd601e..1c2a5cdb 100644
--- a/src/PhpWord/Template.php
+++ b/src/PhpWord/Template.php
@@ -205,7 +205,8 @@ class Template
// If tmpXmlRow doesn't contain continue, this row is no longer part of the spanned row.
$tmpXmlRow = $this->getSlice($extraRowStart, $extraRowEnd);
- if (!preg_match('##', $tmpXmlRow) && !preg_match('##', $tmpXmlRow)) {
+ if (!preg_match('##', $tmpXmlRow) &&
+ !preg_match('##', $tmpXmlRow)) {
break;
}
// This row was a spanned row, update $rowEnd and search for the next row.
@@ -234,7 +235,12 @@ class Template
public function cloneBlock($blockname, $clones = 1, $replace = true)
{
$xmlBlock = null;
- preg_match('/(<\?xml.*)(\${' . $blockname . '}<\/w:.*?p>)(.*)()/is', $this->documentXML, $matches);
+ $pattern =
+ preg_match(
+ '/(<\?xml.*)(\${' . $blockname . '}<\/w:.*?p>)(.*)()/is',
+ $this->documentXML,
+ $matches
+ );
if (isset($matches[3])) {
$xmlBlock = $matches[3];
@@ -244,7 +250,11 @@ class Template
}
if ($replace) {
- $this->documentXML = str_replace($matches[2] . $matches[3] . $matches[4], implode('', $cloned), $this->documentXML);
+ $this->documentXML = str_replace(
+ $matches[2] . $matches[3] . $matches[4],
+ implode('', $cloned),
+ $this->documentXML
+ );
}
}
@@ -259,10 +269,18 @@ class Template
*/
public function replaceBlock($blockname, $replacement)
{
- preg_match('/(<\?xml.*)(\${' . $blockname . '}<\/w:.*?p>)(.*)()/is', $this->documentXML, $matches);
+ preg_match(
+ '/(<\?xml.*)(\${' . $blockname . '}<\/w:.*?p>)(.*)()/is',
+ $this->documentXML,
+ $matches
+ );
if (isset($matches[3])) {
- $this->documentXML = str_replace($matches[2] . $matches[3] . $matches[4], $replacement, $this->documentXML);
+ $this->documentXML = str_replace(
+ $matches[2] . $matches[3] . $matches[4],
+ $replacement,
+ $this->documentXML
+ );
}
}
diff --git a/src/PhpWord/Writer/AbstractWriter.php b/src/PhpWord/Writer/AbstractWriter.php
index 2ae65f39..f1a30026 100644
--- a/src/PhpWord/Writer/AbstractWriter.php
+++ b/src/PhpWord/Writer/AbstractWriter.php
@@ -35,6 +35,13 @@ abstract class AbstractWriter implements WriterInterface
*/
protected $phpWord = null;
+ /**
+ * Part name and file name pairs
+ *
+ * @var array
+ */
+ protected $parts = array();
+
/**
* Individual writers
*
@@ -114,13 +121,13 @@ abstract class AbstractWriter implements WriterInterface
/**
* Get writer part
*
- * @param string $pPartName Writer part name
+ * @param string $partName Writer part name
* @return mixed
*/
- public function getWriterPart($pPartName = '')
+ public function getWriterPart($partName = '')
{
- if ($pPartName != '' && isset($this->writerParts[strtolower($pPartName)])) {
- return $this->writerParts[strtolower($pPartName)];
+ if ($partName != '' && isset($this->writerParts[strtolower($partName)])) {
+ return $this->writerParts[strtolower($partName)];
} else {
return null;
}
@@ -139,19 +146,19 @@ abstract class AbstractWriter implements WriterInterface
/**
* Set use disk caching status
*
- * @param bool $pValue
- * @param string $pDirectory
+ * @param bool $value
+ * @param string $directory
* @return self
*/
- public function setUseDiskCaching($pValue = false, $pDirectory = null)
+ public function setUseDiskCaching($value = false, $directory = null)
{
- $this->useDiskCaching = $pValue;
+ $this->useDiskCaching = $value;
- if (!is_null($pDirectory)) {
- if (is_dir($pDirectory)) {
- $this->diskCachingDirectory = $pDirectory;
+ if (!is_null($directory)) {
+ if (is_dir($directory)) {
+ $this->diskCachingDirectory = $directory;
} else {
- throw new Exception("Directory does not exist: $pDirectory");
+ throw new Exception("Directory does not exist: $directory");
}
}
@@ -227,7 +234,7 @@ abstract class AbstractWriter implements WriterInterface
{
if ($this->originalFilename != $this->tempFilename) {
if (copy($this->tempFilename, $this->originalFilename) === false) {
- throw new Exception("Could not copy temporary zip file {$this->tempFilename} to {$this->originalFilename}.");
+ throw new Exception("Could not copy temporary zip file.");
}
@unlink($this->tempFilename);
}
@@ -258,7 +265,6 @@ abstract class AbstractWriter implements WriterInterface
$objZip = new $zipClass();
// Retrieve OVERWRITE and CREATE constants from the instantiated zip class
- // This method of accessing constant values from a dynamic class should work with all appropriate versions of PHP
$reflection = new \ReflectionObject($objZip);
$zipOverWrite = $reflection->getConstant('OVERWRITE');
$zipCreate = $reflection->getConstant('CREATE');
diff --git a/src/PhpWord/Writer/HTML.php b/src/PhpWord/Writer/HTML.php
index d08f704f..d8ecd31f 100644
--- a/src/PhpWord/Writer/HTML.php
+++ b/src/PhpWord/Writer/HTML.php
@@ -188,7 +188,8 @@ class HTML extends AbstractWriter implements WriterInterface
if (array_key_exists($noteTypeId, $collection)) {
$element = $collection[$noteTypeId];
$elmWriter = new TextRunWriter($this, $element, true);
- $content = "{$noteId}" . $elmWriter->write();
+ $content = "{$noteId}";
+ $content .= $elmWriter->write();
$html .= "{$content}
" . PHP_EOL;
}
}
diff --git a/src/PhpWord/Writer/HTML/Element/Element.php b/src/PhpWord/Writer/HTML/Element/Element.php
index 82326c17..bd8d38b6 100644
--- a/src/PhpWord/Writer/HTML/Element/Element.php
+++ b/src/PhpWord/Writer/HTML/Element/Element.php
@@ -23,7 +23,8 @@ use PhpOffice\PhpWord\Writer\HTML;
/**
* Generic element HTML writer
*
- * Section: Text, TextRun, Link, Title, PreserveText, TextBreak, PageBreak, Table, ListItem, Image, Object, Endnote, Footnote
+ * Section: Text, TextRun, Link, Title, PreserveText, TextBreak, PageBreak, Table, ListItem, Image,
+ * Object, Endnote, Footnote
* Cell: Text, TextRun, Link, PreserveText, TextBreak, ListItem, Image, Object, Endnote, Footnote
* TextRun: Text, Link, TextBreak, Image, Endnote, Footnote
*
diff --git a/src/PhpWord/Writer/ODText.php b/src/PhpWord/Writer/ODText.php
index afd4a81b..fa290206 100644
--- a/src/PhpWord/Writer/ODText.php
+++ b/src/PhpWord/Writer/ODText.php
@@ -39,14 +39,19 @@ class ODText extends AbstractWriter implements WriterInterface
$this->setPhpWord($phpWord);
// Create parts
- $parts = array('Content', 'Manifest', 'Meta', 'Mimetype', 'Styles');
- foreach ($parts as $part) {
- $partName = strtolower($part);
- $partClass = 'PhpOffice\\PhpWord\\Writer\\ODText\\Part\\' . $part;
+ $this->parts = array(
+ 'Mimetype' => 'mimetype',
+ 'Content' => 'content.xml',
+ 'Meta' => 'meta.xml',
+ 'Styles' => 'styles.xml',
+ 'Manifest' => 'META-INF/manifest.xml',
+ );
+ foreach (array_keys($this->parts) as $partName) {
+ $partClass = 'PhpOffice\\PhpWord\\Writer\\ODText\\Part\\' . $partName;
if (class_exists($partClass)) {
$partObject = new $partClass();
$partObject->setParentWriter($this);
- $this->writerParts[$partName] = $partObject;
+ $this->writerParts[strtolower($partName)] = $partObject;
}
}
@@ -72,12 +77,12 @@ class ODText extends AbstractWriter implements WriterInterface
$this->addFilesToPackage($objZip, $sectionMedia);
}
- // Add parts
- $objZip->addFromString('mimetype', $this->getWriterPart('mimetype')->writeMimetype());
- $objZip->addFromString('content.xml', $this->getWriterPart('content')->writeContent($this->phpWord));
- $objZip->addFromString('meta.xml', $this->getWriterPart('meta')->writeMeta($this->phpWord));
- $objZip->addFromString('styles.xml', $this->getWriterPart('styles')->writeStyles($this->phpWord));
- $objZip->addFromString('META-INF/manifest.xml', $this->getWriterPart('manifest')->writeManifest());
+ // Write parts
+ foreach ($this->parts as $partName => $fileName) {
+ if ($fileName != '') {
+ $objZip->addFromString($fileName, $this->getWriterPart($partName)->write());
+ }
+ }
// Close file
if ($objZip->close() === false) {
diff --git a/src/PhpWord/Writer/ODText/Element/Element.php b/src/PhpWord/Writer/ODText/Element/Element.php
index c9df774a..e5038d21 100644
--- a/src/PhpWord/Writer/ODText/Element/Element.php
+++ b/src/PhpWord/Writer/ODText/Element/Element.php
@@ -59,9 +59,10 @@ class Element
/**
* Create new instance
*
+ * @param \PhpOffice\PhpWord\Element\AbstractElement $element
* @param bool $withoutP
*/
- public function __construct(XMLWriter $xmlWriter, AbstractPart $parentWriter, AbstractElement $element, $withoutP = false)
+ public function __construct(XMLWriter $xmlWriter, AbstractPart $parentWriter, $element, $withoutP = false)
{
$this->xmlWriter = $xmlWriter;
$this->parentWriter = $parentWriter;
diff --git a/src/PhpWord/Writer/ODText/Element/Table.php b/src/PhpWord/Writer/ODText/Element/Table.php
index 7dd09ce8..fcd1461a 100644
--- a/src/PhpWord/Writer/ODText/Element/Table.php
+++ b/src/PhpWord/Writer/ODText/Element/Table.php
@@ -56,7 +56,8 @@ class Table extends Element
$elementWriter->write();
}
} else {
- $elementWriter = new ElementWriter($this->xmlWriter, $this->parentWriter, new TextBreakElement());
+ $element = new TextBreakElement();
+ $elementWriter = new ElementWriter($this->xmlWriter, $this->parentWriter, $element);
$elementWriter->write();
}
$this->xmlWriter->endElement(); // table:table-cell
diff --git a/src/PhpWord/Writer/ODText/Part/Content.php b/src/PhpWord/Writer/ODText/Part/Content.php
index a777ad5d..231e3b0d 100644
--- a/src/PhpWord/Writer/ODText/Part/Content.php
+++ b/src/PhpWord/Writer/ODText/Part/Content.php
@@ -29,21 +29,18 @@ use PhpOffice\PhpWord\Style;
use PhpOffice\PhpWord\Writer\ODText\Element\Element as ElementWriter;
/**
- * ODText content part writer
+ * ODText content part writer: content.xml
*/
class Content extends AbstractPart
{
/**
- * Write content file to XML format
+ * Write part
*
- * @param \PhpOffice\PhpWord\PhpWord $phpWord
- * @return string XML Output
+ * @return string
*/
- public function writeContent(PhpWord $phpWord = null)
+ public function write()
{
- if (is_null($phpWord)) {
- throw new Exception("No PhpWord assigned.");
- }
+ $phpWord = $this->getParentWriter()->getPhpWord();
$xmlWriter = $this->getXmlWriter();
$xmlWriter->startDocument('1.0', 'UTF-8');
diff --git a/src/PhpWord/Writer/ODText/Part/Manifest.php b/src/PhpWord/Writer/ODText/Part/Manifest.php
index 2b18d2a4..7c695e9b 100644
--- a/src/PhpWord/Writer/ODText/Part/Manifest.php
+++ b/src/PhpWord/Writer/ODText/Part/Manifest.php
@@ -20,49 +20,38 @@ namespace PhpOffice\PhpWord\Writer\ODText\Part;
use PhpOffice\PhpWord\Media;
/**
- * ODText manifest part writer
+ * ODText manifest part writer: META-INF/manifest.xml
*/
class Manifest extends AbstractPart
{
/**
- * Write Manifest file to XML format
+ * Write part
*
- * @return string XML Output
+ * @return string
*/
- public function writeManifest()
+ public function write()
{
- // Create XML writer
+ $parts = array('content.xml', 'meta.xml', 'styles.xml');
$xmlWriter = $this->getXmlWriter();
- // XML header
$xmlWriter->startDocument('1.0', 'UTF-8');
-
- // manifest:manifest
$xmlWriter->startElement('manifest:manifest');
$xmlWriter->writeAttribute('manifest:version', '1.2');
$xmlWriter->writeAttribute('xmlns:manifest', 'urn:oasis:names:tc:opendocument:xmlns:manifest:1.0');
- // manifest:file-entry
$xmlWriter->startElement('manifest:file-entry');
$xmlWriter->writeAttribute('manifest:media-type', 'application/vnd.oasis.opendocument.text');
- $xmlWriter->writeAttribute('manifest:version', '1.2');
$xmlWriter->writeAttribute('manifest:full-path', '/');
+ $xmlWriter->writeAttribute('manifest:version', '1.2');
$xmlWriter->endElement();
- // manifest:file-entry
- $xmlWriter->startElement('manifest:file-entry');
- $xmlWriter->writeAttribute('manifest:media-type', 'text/xml');
- $xmlWriter->writeAttribute('manifest:full-path', 'content.xml');
- $xmlWriter->endElement();
- // manifest:file-entry
- $xmlWriter->startElement('manifest:file-entry');
- $xmlWriter->writeAttribute('manifest:media-type', 'text/xml');
- $xmlWriter->writeAttribute('manifest:full-path', 'meta.xml');
- $xmlWriter->endElement();
- // manifest:file-entry
- $xmlWriter->startElement('manifest:file-entry');
- $xmlWriter->writeAttribute('manifest:media-type', 'text/xml');
- $xmlWriter->writeAttribute('manifest:full-path', 'styles.xml');
- $xmlWriter->endElement();
+
+ // Parts
+ foreach ($parts as $part) {
+ $xmlWriter->startElement('manifest:file-entry');
+ $xmlWriter->writeAttribute('manifest:media-type', 'text/xml');
+ $xmlWriter->writeAttribute('manifest:full-path', $part);
+ $xmlWriter->endElement();
+ }
// Media files
$media = Media::getElements('section');
diff --git a/src/PhpWord/Writer/ODText/Part/Meta.php b/src/PhpWord/Writer/ODText/Part/Meta.php
index df07426d..ec1ee4c1 100644
--- a/src/PhpWord/Writer/ODText/Part/Meta.php
+++ b/src/PhpWord/Writer/ODText/Part/Meta.php
@@ -21,29 +21,22 @@ use PhpOffice\PhpWord\Exception\Exception;
use PhpOffice\PhpWord\PhpWord;
/**
- * ODText meta part writer
+ * ODText meta part writer: meta.xml
*/
class Meta extends AbstractPart
{
/**
- * Write Meta file to XML format
+ * Write part
*
- * @param \PhpOffice\PhpWord\PhpWord $phpWord
- * @return string XML Output
+ * @return string
*/
- public function writeMeta(PhpWord $phpWord = null)
+ public function write()
{
- if (is_null($phpWord)) {
- throw new Exception("No PhpWord assigned.");
- }
-
- // Create XML writer
+ $phpWord = $this->getParentWriter()->getPhpWord();
+ $docProps = $phpWord->getDocumentProperties();
$xmlWriter = $this->getXmlWriter();
- // XML header
$xmlWriter->startDocument('1.0', 'UTF-8');
-
- // office:document-meta
$xmlWriter->startElement('office:document-meta');
$xmlWriter->writeAttribute('office:version', '1.2');
$xmlWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
@@ -55,27 +48,18 @@ class Meta extends AbstractPart
// office:meta
$xmlWriter->startElement('office:meta');
-
- // dc:creator
- $xmlWriter->writeElement('dc:creator', $phpWord->getDocumentProperties()->getLastModifiedBy());
- // dc:date
- $xmlWriter->writeElement('dc:date', gmdate('Y-m-d\TH:i:s.000', $phpWord->getDocumentProperties()->getModified()));
- // dc:description
- $xmlWriter->writeElement('dc:description', $phpWord->getDocumentProperties()->getDescription());
- // dc:subject
- $xmlWriter->writeElement('dc:subject', $phpWord->getDocumentProperties()->getSubject());
- // dc:title
- $xmlWriter->writeElement('dc:title', $phpWord->getDocumentProperties()->getTitle());
- // meta:creation-date
- $xmlWriter->writeElement('meta:creation-date', gmdate('Y-m-d\TH:i:s.000', $phpWord->getDocumentProperties()->getCreated()));
- // meta:initial-creator
- $xmlWriter->writeElement('meta:initial-creator', $phpWord->getDocumentProperties()->getCreator());
- // meta:keyword
- $xmlWriter->writeElement('meta:keyword', $phpWord->getDocumentProperties()->getKeywords());
+ $xmlWriter->writeElement('dc:creator', $docProps->getLastModifiedBy());
+ $xmlWriter->writeElement('dc:date', gmdate('Y-m-d\TH:i:s.000', $docProps->getModified()));
+ $xmlWriter->writeElement('dc:description', $docProps->getDescription());
+ $xmlWriter->writeElement('dc:subject', $docProps->getSubject());
+ $xmlWriter->writeElement('dc:title', $docProps->getTitle());
+ $xmlWriter->writeElement('meta:creation-date', gmdate('Y-m-d\TH:i:s.000', $docProps->getCreated()));
+ $xmlWriter->writeElement('meta:initial-creator', $docProps->getCreator());
+ $xmlWriter->writeElement('meta:keyword', $docProps->getKeywords());
// @todo : Where these properties are written ?
- // $phpWord->getDocumentProperties()->getCategory()
- // $phpWord->getDocumentProperties()->getCompany()
+ // $docProps->getCategory()
+ // $docProps->getCompany()
$xmlWriter->endElement();
diff --git a/src/PhpWord/Writer/ODText/Part/Mimetype.php b/src/PhpWord/Writer/ODText/Part/Mimetype.php
index ebb09f58..1da4edb0 100644
--- a/src/PhpWord/Writer/ODText/Part/Mimetype.php
+++ b/src/PhpWord/Writer/ODText/Part/Mimetype.php
@@ -18,16 +18,16 @@
namespace PhpOffice\PhpWord\Writer\ODText\Part;
/**
- * ODText mimetype part writer
+ * ODText mimetype part writer: mimetype
*/
class Mimetype extends AbstractPart
{
/**
- * Write Mimetype to Text format
+ * Write part
*
- * @return string Text Output
+ * @return string
*/
- public function writeMimetype()
+ public function write()
{
return 'application/vnd.oasis.opendocument.text';
}
diff --git a/src/PhpWord/Writer/ODText/Part/Styles.php b/src/PhpWord/Writer/ODText/Part/Styles.php
index 7dde4031..270ef15d 100644
--- a/src/PhpWord/Writer/ODText/Part/Styles.php
+++ b/src/PhpWord/Writer/ODText/Part/Styles.php
@@ -22,23 +22,17 @@ use PhpOffice\PhpWord\PhpWord;
use PhpOffice\PhpWord\Style;
/**
- * ODText styloes part writer
+ * ODText styloes part writer: styles.xml
*/
class Styles extends AbstractPart
{
/**
- * Write Styles file to XML format
+ * Write part
*
- * @param \PhpOffice\PhpWord\PhpWord $phpWord
- * @return string XML Output
+ * @return string
*/
- public function writeStyles(PhpWord $phpWord = null)
+ public function write()
{
- if (is_null($phpWord)) {
- throw new Exception("No PhpWord assigned.");
- }
-
- // Create XML writer
$xmlWriter = $this->getXmlWriter();
// XML header
diff --git a/src/PhpWord/Writer/RTF.php b/src/PhpWord/Writer/RTF.php
index 2c2b012f..4a63fdcc 100644
--- a/src/PhpWord/Writer/RTF.php
+++ b/src/PhpWord/Writer/RTF.php
@@ -260,6 +260,7 @@ class RTF extends AbstractWriter implements WriterInterface
private function populateColorTable()
{
$phpWord = $this->phpWord;
+ $defaultFontColor = PhpWord::DEFAULT_FONT_COLOR;
$arrColors = array();
// PhpWord object : $this->phpWord
@@ -272,10 +273,10 @@ class RTF extends AbstractWriter implements WriterInterface
if ($style instanceof Font) {
$color = $style->getColor();
$fgcolor = $style->getFgColor();
- if (in_array($color, $arrColors) == false && $color != PhpWord::DEFAULT_FONT_COLOR && !empty($color)) {
+ if (!in_array($color, $arrColors) && $color != $defaultFontColor && !empty($color)) {
$arrColors[] = $color;
}
- if (in_array($fgcolor, $arrColors) == false && $fgcolor != PhpWord::DEFAULT_FONT_COLOR && !empty($fgcolor)) {
+ if (!in_array($fgcolor, $arrColors) && $fgcolor != $defaultFontColor && !empty($fgcolor)) {
$arrColors[] = $fgcolor;
}
}
diff --git a/src/PhpWord/Writer/Word2007.php b/src/PhpWord/Writer/Word2007.php
index 8b91d036..07eef989 100644
--- a/src/PhpWord/Writer/Word2007.php
+++ b/src/PhpWord/Writer/Word2007.php
@@ -52,16 +52,31 @@ class Word2007 extends AbstractWriter implements WriterInterface
$this->setPhpWord($phpWord);
// Create parts
- $parts = array('ContentTypes', 'RelsMain', 'RelsDocument', 'DocPropsApp', 'DocPropsCore', 'Document', 'Styles',
- 'Numbering', 'Settings', 'WebSettings', 'Header', 'Footer', 'Footnotes',
- 'Endnotes', 'FontTable', 'Theme');
- foreach ($parts as $part) {
- $partName = strtolower($part);
- $partClass = 'PhpOffice\\PhpWord\\Writer\\Word2007\\Part\\' . $part;
+ $this->parts = array(
+ 'ContentTypes' => '[Content_Types].xml',
+ 'Rels' => '_rels/.rels',
+ 'DocPropsApp' => 'docProps/app.xml',
+ 'DocPropsCore' => 'docProps/core.xml',
+ 'RelsDocument' => 'word/_rels/document.xml.rels',
+ 'Document' => 'word/document.xml',
+ 'Styles' => 'word/styles.xml',
+ 'Numbering' => 'word/numbering.xml',
+ 'Settings' => 'word/settings.xml',
+ 'WebSettings' => 'word/webSettings.xml',
+ 'FontTable' => 'word/fontTable.xml',
+ 'Theme' => 'word/theme/theme1.xml',
+ 'RelsPart' => '',
+ 'Header' => '',
+ 'Footer' => '',
+ 'Footnotes' => '',
+ 'Endnotes' => '',
+ );
+ foreach (array_keys($this->parts) as $partName) {
+ $partClass = 'PhpOffice\\PhpWord\\Writer\\Word2007\\Part\\' . $partName;
if (class_exists($partClass)) {
$partObject = new $partClass();
$partObject->setParentWriter($this);
- $this->writerParts[$partName] = $partObject;
+ $this->writerParts[strtolower($partName)] = $partObject;
}
}
@@ -112,18 +127,11 @@ class Word2007 extends AbstractWriter implements WriterInterface
$this->addNotes($objZip, $rId, 'endnote');
// Write parts
- $objZip->addFromString('[Content_Types].xml', $this->getWriterPart('contenttypes')->write());
- $objZip->addFromString('_rels/.rels', $this->getWriterPart('relsmain')->write());
- $objZip->addFromString('docProps/app.xml', $this->getWriterPart('docpropsapp')->write());
- $objZip->addFromString('docProps/core.xml', $this->getWriterPart('docpropscore')->write());
- $objZip->addFromString('word/_rels/document.xml.rels', $this->getWriterPart('relsdocument')->write());
- $objZip->addFromString('word/document.xml', $this->getWriterPart('document')->write());
- $objZip->addFromString('word/styles.xml', $this->getWriterPart('styles')->write());
- $objZip->addFromString('word/numbering.xml', $this->getWriterPart('numbering')->write());
- $objZip->addFromString('word/settings.xml', $this->getWriterPart('settings')->write());
- $objZip->addFromString('word/webSettings.xml', $this->getWriterPart('websettings')->write());
- $objZip->addFromString('word/fontTable.xml', $this->getWriterPart('fonttable')->write());
- $objZip->addFromString('word/theme/theme1.xml', $this->getWriterPart('theme')->write());
+ foreach ($this->parts as $partName => $fileName) {
+ if ($fileName != '') {
+ $objZip->addFromString($fileName, $this->getWriterPart($partName)->write());
+ }
+ }
// Close file
if ($objZip->close() === false) {
@@ -157,7 +165,7 @@ class Word2007 extends AbstractWriter implements WriterInterface
}
/**
- * Add header/footer media files
+ * Add header/footer media files, e.g. footer1.xml.rels
*
* @param mixed $objZip
* @param string $docPart
@@ -172,8 +180,9 @@ class Word2007 extends AbstractWriter implements WriterInterface
$this->addFilesToPackage($objZip, $media);
$this->registerContentTypes($media);
}
- $relsFile = "word/_rels/{$file}.xml.rels";
- $objZip->addFromString($relsFile, $this->getWriterPart('rels')->writeMediaRels($media));
+
+ $writerPart = $this->getWriterPart('relspart')->setMedia($media);
+ $objZip->addFromString("word/_rels/{$file}.xml.rels", $writerPart->write());
}
}
}
@@ -183,22 +192,23 @@ class Word2007 extends AbstractWriter implements WriterInterface
* Add header/footer content
*
* @param mixed $objZip
- * @param string $elmType
+ * @param string $elmType header|footer
* @param integer $rId
*/
private function addHeaderFooterContent(Section &$section, $objZip, $elmType, &$rId)
{
$getFunction = $elmType == 'header' ? 'getHeaders' : 'getFooters';
- $writeFunction = $elmType == 'header' ? 'writeHeader' : 'writeFooter';
$elmCount = ($section->getSectionId() - 1) * 3;
- $elmObjects = $section->$getFunction();
- foreach ($elmObjects as &$elmObject) {
+ $elements = $section->$getFunction();
+ foreach ($elements as &$element) {
$elmCount++;
- $elmObject->setRelationId(++$rId);
- $elmFile = "{$elmType}{$elmCount}.xml";
- $objZip->addFromString("word/$elmFile", $this->getWriterPart($elmType)->$writeFunction($elmObject));
+ $element->setRelationId(++$rId);
+ $elmFile = "{$elmType}{$elmCount}.xml"; // e.g. footer1.xml
$this->contentTypes['override']["/word/$elmFile"] = $elmType;
$this->relationships[] = array('target' => $elmFile, 'type' => $elmType, 'rID' => $rId);
+
+ $writerPart = $this->getWriterPart($elmType)->setElement($element);
+ $objZip->addFromString("word/$elmFile", $writerPart->write());
}
}
@@ -221,13 +231,18 @@ class Word2007 extends AbstractWriter implements WriterInterface
$media = Media::getElements($noteType);
$this->addFilesToPackage($objZip, $media);
$this->registerContentTypes($media);
- if (!empty($media)) {
- $objZip->addFromString("word/_rels/{$partName}.xml.rels", $this->getWriterPart('rels')->writeMediaRels($media));
- }
- $elements = $collection->getItems();
- $objZip->addFromString("word/{$partName}.xml", $this->getWriterPart($partName)->write($elements));
$this->contentTypes['override']["/word/{$partName}.xml"] = $partName;
$this->relationships[] = array('target' => "{$partName}.xml", 'type' => $partName, 'rID' => ++$rId);
+
+ // Write relationships file, e.g. word/_rels/footnotes.xml
+ if (!empty($media)) {
+ $writerPart = $this->getWriterPart('relspart')->setMedia($media);
+ $objZip->addFromString("word/_rels/{$partName}.xml.rels", $writerPart->write());
+ }
+
+ // Write content file, e.g. word/footnotes.xml
+ $writerPart = $this->getWriterPart($partName)->setElements($collection->getItems());
+ $objZip->addFromString("word/{$partName}.xml", $writerPart->write());
}
}
diff --git a/src/PhpWord/Writer/Word2007/Element/Element.php b/src/PhpWord/Writer/Word2007/Element/Element.php
index acccd81d..89d92ac5 100644
--- a/src/PhpWord/Writer/Word2007/Element/Element.php
+++ b/src/PhpWord/Writer/Word2007/Element/Element.php
@@ -59,9 +59,10 @@ class Element
/**
* Create new instance
*
+ * @param \PhpOffice\PhpWord\Element\AbstractElement $element
* @param bool $withoutP
*/
- public function __construct(XMLWriter $xmlWriter, AbstractPart $parentWriter, AbstractElement $element, $withoutP = false)
+ public function __construct(XMLWriter $xmlWriter, AbstractPart $parentWriter, $element, $withoutP = false)
{
$this->xmlWriter = $xmlWriter;
$this->parentWriter = $parentWriter;
diff --git a/src/PhpWord/Writer/Word2007/Element/TOC.php b/src/PhpWord/Writer/Word2007/Element/TOC.php
index fc91ee90..5c2496cb 100644
--- a/src/PhpWord/Writer/Word2007/Element/TOC.php
+++ b/src/PhpWord/Writer/Word2007/Element/TOC.php
@@ -81,6 +81,8 @@ class TOC extends Element
if ($tocFieldWritten !== true) {
$tocFieldWritten = true;
+ $minDepth = $this->element->getMinDepth();
+ $maxDepth = $this->element->getMaxDepth();
$this->xmlWriter->startElement('w:r');
$this->xmlWriter->startElement('w:fldChar');
@@ -91,7 +93,7 @@ class TOC extends Element
$this->xmlWriter->startElement('w:r');
$this->xmlWriter->startElement('w:instrText');
$this->xmlWriter->writeAttribute('xml:space', 'preserve');
- $this->xmlWriter->writeRaw('TOC \o "' . $this->element->getMinDepth() . '-' . $this->element->getMaxDepth() . '" \h \z \u');
+ $this->xmlWriter->writeRaw("TOC \o {$minDepth}-{$maxDepth} \h \z \u");
$this->xmlWriter->endElement();
$this->xmlWriter->endElement();
diff --git a/src/PhpWord/Writer/Word2007/Part/ContentTypes.php b/src/PhpWord/Writer/Word2007/Part/ContentTypes.php
index 3af420cc..3af62a44 100644
--- a/src/PhpWord/Writer/Word2007/Part/ContentTypes.php
+++ b/src/PhpWord/Writer/Word2007/Part/ContentTypes.php
@@ -21,16 +21,18 @@ use PhpOffice\PhpWord\Exception\Exception;
use PhpOffice\PhpWord\Shared\XMLWriter;
/**
- * Word2007 contenttypes part writer
+ * Word2007 contenttypes part writer: [Content_Types].xml
*/
class ContentTypes extends AbstractPart
{
/**
- * Write [Content_Types].xml
+ * Write part
+ *
+ * @return string
*/
public function write()
{
- $contentTypes = $this->parentWriter->getContentTypes();
+ $contentTypes = $this->getParentWriter()->getContentTypes();
$openXMLPrefix = 'application/vnd.openxmlformats-';
$wordMLPrefix = $openXMLPrefix . 'officedocument.wordprocessingml.';
@@ -90,17 +92,4 @@ class ContentTypes extends AbstractPart
}
}
}
-
- /**
- * Write [Content_Types].xml
- *
- * @param array $contentTypes
- * @deprecated 0.11.0
- * @codeCoverageIgnore
- */
- public function writeContentTypes($contentTypes)
- {
- $contentTypes = null; // dummy assignment
- return $this->write();
- }
}
diff --git a/src/PhpWord/Writer/Word2007/Part/DocPropsApp.php b/src/PhpWord/Writer/Word2007/Part/DocPropsApp.php
index 06a4e780..99b2c567 100644
--- a/src/PhpWord/Writer/Word2007/Part/DocPropsApp.php
+++ b/src/PhpWord/Writer/Word2007/Part/DocPropsApp.php
@@ -21,26 +21,26 @@ use PhpOffice\PhpWord\Exception\Exception;
use PhpOffice\PhpWord\PhpWord;
/**
- * Word2007 extended document properties part writer
+ * Word2007 extended document properties part writer: docProps/app.xml
*
* @since 0.11.0
*/
class DocPropsApp extends AbstractPart
{
/**
- * Write docProps/app.xml
+ * Write part
+ *
+ * @return string
*/
public function write()
{
- $phpWord = $this->parentWriter->getPhpWord();
- if (is_null($phpWord)) {
- throw new Exception('No PhpWord assigned.');
- }
+ $phpWord = $this->getParentWriter()->getPhpWord();
$xmlWriter = $this->getXmlWriter();
+ $schema = 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties';
$xmlWriter->startDocument('1.0', 'UTF-8', 'yes');
$xmlWriter->startElement('Properties');
- $xmlWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties');
+ $xmlWriter->writeAttribute('xmlns', $schema);
$xmlWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes');
$xmlWriter->writeElement('Application', 'PHPWord');
diff --git a/src/PhpWord/Writer/Word2007/Part/DocPropsCore.php b/src/PhpWord/Writer/Word2007/Part/DocPropsCore.php
index 95fb213e..2e9a329f 100644
--- a/src/PhpWord/Writer/Word2007/Part/DocPropsCore.php
+++ b/src/PhpWord/Writer/Word2007/Part/DocPropsCore.php
@@ -21,26 +21,26 @@ use PhpOffice\PhpWord\Exception\Exception;
use PhpOffice\PhpWord\PhpWord;
/**
- * Word2007 core document properties part writer
+ * Word2007 core document properties part writer: docProps/core.xml
*
* @since 0.11.0
*/
class DocPropsCore extends AbstractPart
{
/**
- * Write docProps/core.xml
+ * Write part
+ *
+ * @return string
*/
public function write()
{
- $phpWord = $this->parentWriter->getPhpWord();
- if (is_null($phpWord)) {
- throw new Exception('No PhpWord assigned.');
- }
+ $phpWord = $this->getParentWriter()->getPhpWord();
$xmlWriter = $this->getXmlWriter();
+ $schema = 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties';
$xmlWriter->startDocument('1.0', 'UTF-8', 'yes');
$xmlWriter->startElement('cp:coreProperties');
- $xmlWriter->writeAttribute('xmlns:cp', 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties');
+ $xmlWriter->writeAttribute('xmlns:cp', $schema);
$xmlWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
$xmlWriter->writeAttribute('xmlns:dcterms', 'http://purl.org/dc/terms/');
$xmlWriter->writeAttribute('xmlns:dcmitype', 'http://purl.org/dc/dcmitype/');
diff --git a/src/PhpWord/Writer/Word2007/Part/Document.php b/src/PhpWord/Writer/Word2007/Part/Document.php
index 47f7e02d..a25588f8 100644
--- a/src/PhpWord/Writer/Word2007/Part/Document.php
+++ b/src/PhpWord/Writer/Word2007/Part/Document.php
@@ -24,26 +24,24 @@ use PhpOffice\PhpWord\Shared\XMLWriter;
use PhpOffice\PhpWord\Writer\Word2007\Style\Section as SectionStyleWriter;
/**
- * Word2007 document part writer
+ * Word2007 document part writer: word/document.xml
*/
class Document extends AbstractPart
{
/**
- * Write word/document.xml
+ * Write part
*
* @return string
- * @throws \PhpOffice\PhpWord\Exception\Exception
*/
public function write()
{
- $phpWord = $this->parentWriter->getPhpWord();
- if (is_null($phpWord)) {
- throw new Exception('No PhpWord assigned.');
- }
+ $phpWord = $this->getParentWriter()->getPhpWord();
$xmlWriter = $this->getXmlWriter();
+
$sections = $phpWord->getSections();
$sectionCount = count($sections);
$currentSection = 0;
+ $drawingSchema = 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing';
$xmlWriter->startDocument('1.0', 'UTF-8', 'yes');
$xmlWriter->startElement('w:document');
@@ -52,7 +50,7 @@ class Document extends AbstractPart
$xmlWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
$xmlWriter->writeAttribute('xmlns:m', 'http://schemas.openxmlformats.org/officeDocument/2006/math');
$xmlWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml');
- $xmlWriter->writeAttribute('xmlns:wp', 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing');
+ $xmlWriter->writeAttribute('xmlns:wp', $drawingSchema);
$xmlWriter->writeAttribute('xmlns:w10', 'urn:schemas-microsoft-com:office:word');
$xmlWriter->writeAttribute('xmlns:w', 'http://schemas.openxmlformats.org/wordprocessingml/2006/main');
$xmlWriter->writeAttribute('xmlns:wne', 'http://schemas.microsoft.com/office/word/2006/wordml');
@@ -133,17 +131,4 @@ class Document extends AbstractPart
$xmlWriter->endElement(); // w:sectPr
}
-
- /**
- * Write word/document.xml
- *
- * @param \PhpOffice\PhpWord\PhpWord $phpWord
- * @deprecated 0.11.0
- * @codeCoverageIgnore
- */
- public function writeDocument(PhpWord $phpWord = null)
- {
- $this->parentWriter->setPhpWord($phpWord);
- return $this->write();
- }
}
diff --git a/src/PhpWord/Writer/Word2007/Part/Endnotes.php b/src/PhpWord/Writer/Word2007/Part/Endnotes.php
index ad97be41..f07bac5f 100644
--- a/src/PhpWord/Writer/Word2007/Part/Endnotes.php
+++ b/src/PhpWord/Writer/Word2007/Part/Endnotes.php
@@ -18,7 +18,7 @@
namespace PhpOffice\PhpWord\Writer\Word2007\Part;
/**
- * Word2007 endnotes part writer
+ * Word2007 endnotes part writer: word/endnotes.xml
*/
class Endnotes extends Footnotes
{
diff --git a/src/PhpWord/Writer/Word2007/Part/FontTable.php b/src/PhpWord/Writer/Word2007/Part/FontTable.php
index 52eeb00f..e894cd23 100644
--- a/src/PhpWord/Writer/Word2007/Part/FontTable.php
+++ b/src/PhpWord/Writer/Word2007/Part/FontTable.php
@@ -18,7 +18,7 @@
namespace PhpOffice\PhpWord\Writer\Word2007\Part;
/**
- * Word2007 font table writer
+ * Word2007 font table writer: word/fontTable.xml
*
* @since 0.10.0
*/
diff --git a/src/PhpWord/Writer/Word2007/Part/Footer.php b/src/PhpWord/Writer/Word2007/Part/Footer.php
index dded8266..12a7b1aa 100644
--- a/src/PhpWord/Writer/Word2007/Part/Footer.php
+++ b/src/PhpWord/Writer/Word2007/Part/Footer.php
@@ -17,10 +17,8 @@
namespace PhpOffice\PhpWord\Writer\Word2007\Part;
-use PhpOffice\PhpWord\Element\AbstractContainer as Container;
-
/**
- * Word2007 footer part writer
+ * Word2007 footer part writer: word/footerx.xml
*/
class Footer extends AbstractPart
{
@@ -32,13 +30,21 @@ class Footer extends AbstractPart
protected $rootElement = 'w:ftr';
/**
- * Write word/footerx.xml
+ * Footer/header element to be written
*
- * @param \PhpOffice\PhpWord\Element\AbstractContainer $element
+ * @var \PhpOffice\PhpWord\Element\Footer
*/
- public function writeFooter(Container $element)
+ protected $element;
+
+ /**
+ * Write part
+ *
+ * @return string
+ */
+ public function write()
{
$xmlWriter = $this->getXmlWriter();
+ $drawingSchema = 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing';
$xmlWriter->startDocument('1.0', 'UTF-8', 'yes');
$xmlWriter->startElement($this->rootElement);
@@ -47,15 +53,28 @@ class Footer extends AbstractPart
$xmlWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
$xmlWriter->writeAttribute('xmlns:m', 'http://schemas.openxmlformats.org/officeDocument/2006/math');
$xmlWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml');
- $xmlWriter->writeAttribute('xmlns:wp', 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing');
+ $xmlWriter->writeAttribute('xmlns:wp', $drawingSchema);
$xmlWriter->writeAttribute('xmlns:w10', 'urn:schemas-microsoft-com:office:word');
$xmlWriter->writeAttribute('xmlns:w', 'http://schemas.openxmlformats.org/wordprocessingml/2006/main');
$xmlWriter->writeAttribute('xmlns:wne', 'http://schemas.microsoft.com/office/word/2006/wordml');
- $this->writeContainerElements($xmlWriter, $element);
+ $this->writeContainerElements($xmlWriter, $this->element);
$xmlWriter->endElement(); // $this->rootElement
return $xmlWriter->getData();
}
+
+ /**
+ * Set element
+ *
+ * @param \PhpOffice\PhpWord\Element\Footer|\PhpOffice\PhpWord\Element\Header $element
+ * @return self
+ */
+ public function setElement($element)
+ {
+ $this->element = $element;
+
+ return $this;
+ }
}
diff --git a/src/PhpWord/Writer/Word2007/Part/Footnotes.php b/src/PhpWord/Writer/Word2007/Part/Footnotes.php
index 42ea9905..7e09446d 100644
--- a/src/PhpWord/Writer/Word2007/Part/Footnotes.php
+++ b/src/PhpWord/Writer/Word2007/Part/Footnotes.php
@@ -22,7 +22,7 @@ use PhpOffice\PhpWord\Shared\XMLWriter;
use PhpOffice\PhpWord\Writer\Word2007\Style\Paragraph as ParagraphStyleWriter;
/**
- * Word2007 footnotes part writer
+ * Word2007 footnotes part writer: word/(footnotes|endnotes).xml
*/
class Footnotes extends AbstractPart
{
@@ -55,13 +55,21 @@ class Footnotes extends AbstractPart
protected $refStyle = 'FootnoteReference';
/**
- * Write word/(footnotes|endnotes).xml
+ * Footnotes/endnotes collection to be written
*
- * @param array $elements
+ * @var \PhpOffice\PhpWord\Collection\Footnotes|\PhpOffice\PhpWord\Collection\Endnotes
*/
- public function write($elements)
+ protected $elements;
+
+ /**
+ * Write part
+ *
+ * @return string
+ */
+ public function write()
{
$xmlWriter = $this->getXmlWriter();
+ $drawingSchema = 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing';
$xmlWriter->startDocument('1.0', 'UTF-8', 'yes');
$xmlWriter->startElement($this->rootNode);
@@ -70,7 +78,7 @@ class Footnotes extends AbstractPart
$xmlWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
$xmlWriter->writeAttribute('xmlns:m', 'http://schemas.openxmlformats.org/officeDocument/2006/math');
$xmlWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml');
- $xmlWriter->writeAttribute('xmlns:wp', 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing');
+ $xmlWriter->writeAttribute('xmlns:wp', $drawingSchema);
$xmlWriter->writeAttribute('xmlns:w10', 'urn:schemas-microsoft-com:office:word');
$xmlWriter->writeAttribute('xmlns:w', 'http://schemas.openxmlformats.org/wordprocessingml/2006/main');
$xmlWriter->writeAttribute('xmlns:wne', 'http://schemas.microsoft.com/office/word/2006/wordml');
@@ -98,7 +106,7 @@ class Footnotes extends AbstractPart
$xmlWriter->endElement(); // $this->elementNode
// Content
- foreach ($elements as $element) {
+ foreach ($this->elements as $element) {
if ($element instanceof Footnote) {
$this->writeNote($xmlWriter, $element);
}
@@ -109,6 +117,19 @@ class Footnotes extends AbstractPart
return $xmlWriter->getData();
}
+ /**
+ * Set element
+ *
+ * @param \PhpOffice\PhpWord\Collection\Footnotes|\PhpOffice\PhpWord\Collection\Endnotes $elements
+ * @return self
+ */
+ public function setElements($elements)
+ {
+ $this->elements = $elements;
+
+ return $this;
+ }
+
/**
* Write note item
*
diff --git a/src/PhpWord/Writer/Word2007/Part/Header.php b/src/PhpWord/Writer/Word2007/Part/Header.php
index 2b515c47..638111d7 100644
--- a/src/PhpWord/Writer/Word2007/Part/Header.php
+++ b/src/PhpWord/Writer/Word2007/Part/Header.php
@@ -17,10 +17,8 @@
namespace PhpOffice\PhpWord\Writer\Word2007\Part;
-use PhpOffice\PhpWord\Element\AbstractContainer as Container;
-
/**
- * Word2007 header part writer
+ * Word2007 header part writer: word/headerx.xml
*/
class Header extends Footer
{
@@ -30,14 +28,4 @@ class Header extends Footer
* @var string
*/
protected $rootElement = 'w:hdr';
-
- /**
- * Write word/headerx.xml
- *
- * @param \PhpOffice\PhpWord\Element\AbstractContainer $element
- */
- public function writeHeader(Container $element)
- {
- return $this->writeFooter($element);
- }
}
diff --git a/src/PhpWord/Writer/Word2007/Part/Numbering.php b/src/PhpWord/Writer/Word2007/Part/Numbering.php
index 1ff57e2b..6f042b4a 100644
--- a/src/PhpWord/Writer/Word2007/Part/Numbering.php
+++ b/src/PhpWord/Writer/Word2007/Part/Numbering.php
@@ -22,18 +22,20 @@ use PhpOffice\PhpWord\Style\NumberingLevel;
use PhpOffice\PhpWord\Style;
/**
- * Word2007 numbering part writer
+ * Word2007 numbering part writer: word/numbering.xml
*/
class Numbering extends AbstractPart
{
/**
- * Write word/numbering.xml
+ * Write part
+ *
+ * @return string
*/
public function write()
{
- $styles = Style::getStyles();
-
$xmlWriter = $this->getXmlWriter();
+ $styles = Style::getStyles();
+ $drawingSchema = 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing';
$xmlWriter->startDocument('1.0', 'UTF-8', 'yes');
$xmlWriter->startElement('w:numbering');
@@ -42,7 +44,7 @@ class Numbering extends AbstractPart
$xmlWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
$xmlWriter->writeAttribute('xmlns:m', 'http://schemas.openxmlformats.org/officeDocument/2006/math');
$xmlWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml');
- $xmlWriter->writeAttribute('xmlns:wp', 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing');
+ $xmlWriter->writeAttribute('xmlns:wp', $drawingSchema);
$xmlWriter->writeAttribute('xmlns:w10', 'urn:schemas-microsoft-com:office:word');
$xmlWriter->writeAttribute('xmlns:w', 'http://schemas.openxmlformats.org/wordprocessingml/2006/main');
$xmlWriter->writeAttribute('xmlns:wne', 'http://schemas.microsoft.com/office/word/2006/wordml');
@@ -167,15 +169,4 @@ class Numbering extends AbstractPart
{
return strtoupper(substr(md5(rand()), 0, $length));
}
-
- /**
- * Write numbering
- *
- * @deprecated 0.11.0
- * @codeCoverageIgnore
- */
- public function writeNumbering()
- {
- return $this->write();
- }
}
diff --git a/src/PhpWord/Writer/Word2007/Part/Rels.php b/src/PhpWord/Writer/Word2007/Part/Rels.php
index 42664505..20076c4e 100644
--- a/src/PhpWord/Writer/Word2007/Part/Rels.php
+++ b/src/PhpWord/Writer/Word2007/Part/Rels.php
@@ -21,7 +21,7 @@ use PhpOffice\PhpWord\Exception\Exception;
use PhpOffice\PhpWord\Shared\XMLWriter;
/**
- * Word2007 relationship writer
+ * Word2007 main relationship writer: _rels/.rels
*
* @since 0.10.0
*/
@@ -33,14 +33,19 @@ class Rels extends AbstractPart
const RELS_BASE = 'http://schemas.openxmlformats.org/';
/**
- * Write word/_rels/(header|footer|footnotes)*.xml.rels
+ * Write part
*
- * @param array $mediaRels
+ * @return string
*/
- public function writeMediaRels($mediaRels)
+ public function write()
{
+ $xmlRels = array(
+ 'docProps/core.xml' => 'package/2006/relationships/metadata/core-properties',
+ 'docProps/app.xml' => 'officeDocument/2006/relationships/extended-properties',
+ 'word/document.xml' => 'officeDocument/2006/relationships/officeDocument',
+ );
$xmlWriter = $this->getXmlWriter();
- $this->writeRels($xmlWriter, null, $mediaRels);
+ $this->writeRels($xmlWriter, $xmlRels);
return $xmlWriter->getData();
}
@@ -73,10 +78,12 @@ class Rels extends AbstractPart
foreach ($mediaRels as $mediaRel) {
$mediaType = $mediaRel['type'];
$type = array_key_exists($mediaType, $mapping) ? $mapping[$mediaType] : $mediaType;
+ $type = "officeDocument/2006/relationships/{$type}";
$target = array_key_exists($mediaType, $targetPaths) ? $targetPaths[$mediaType] : '';
$target .= $mediaRel['target'];
$targetMode = ($type == 'hyperlink') ? 'External' : '';
- $this->writeRel($xmlWriter, $relId++, "officeDocument/2006/relationships/{$type}", $target, $targetMode);
+
+ $this->writeRel($xmlWriter, $relId++, $type, $target, $targetMode);
}
}
diff --git a/src/PhpWord/Writer/Word2007/Part/RelsDocument.php b/src/PhpWord/Writer/Word2007/Part/RelsDocument.php
index 15884406..e0773a4a 100644
--- a/src/PhpWord/Writer/Word2007/Part/RelsDocument.php
+++ b/src/PhpWord/Writer/Word2007/Part/RelsDocument.php
@@ -17,17 +17,17 @@
namespace PhpOffice\PhpWord\Writer\Word2007\Part;
-use PhpOffice\PhpWord\Shared\XMLWriter;
-
/**
- * Word2007 document relationship writer
+ * Word2007 document relationship writer: word/_rels/document.xml.rels
*
* @since 0.11.0
*/
class RelsDocument extends Rels
{
/**
- * Write _rels/.rels
+ * Write part
+ *
+ * @return string
*/
public function write()
{
@@ -40,7 +40,7 @@ class RelsDocument extends Rels
'fontTable.xml' => 'officeDocument/2006/relationships/fontTable',
);
$xmlWriter = $this->getXmlWriter();
- $this->writeRels($xmlWriter, $xmlRels, $this->parentWriter->getRelationships());
+ $this->writeRels($xmlWriter, $xmlRels, $this->getParentWriter()->getRelationships());
return $xmlWriter->getData();
}
diff --git a/src/PhpWord/Writer/Word2007/Part/RelsMain.php b/src/PhpWord/Writer/Word2007/Part/RelsPart.php
similarity index 63%
rename from src/PhpWord/Writer/Word2007/Part/RelsMain.php
rename to src/PhpWord/Writer/Word2007/Part/RelsPart.php
index ec29981e..a3697834 100644
--- a/src/PhpWord/Writer/Word2007/Part/RelsMain.php
+++ b/src/PhpWord/Writer/Word2007/Part/RelsPart.php
@@ -17,28 +17,43 @@
namespace PhpOffice\PhpWord\Writer\Word2007\Part;
-use PhpOffice\PhpWord\Shared\XMLWriter;
-
/**
- * Word2007 main relationship writer
+ * Word2007 part relationship writer: word/_rels/(header|footer|footnotes|endnotes)*.xml.rels
*
* @since 0.11.0
*/
-class RelsMain extends Rels
+class RelsPart extends Rels
{
/**
- * Write _rels/.rels
+ * Media relationships
+ *
+ * @var array
+ */
+ private $media = array();
+
+ /**
+ * Write part
+ *
+ * @return string
*/
public function write()
{
- $xmlRels = array(
- 'docProps/core.xml' => 'package/2006/relationships/metadata/core-properties',
- 'docProps/app.xml' => 'officeDocument/2006/relationships/extended-properties',
- 'word/document.xml' => 'officeDocument/2006/relationships/officeDocument',
- );
$xmlWriter = $this->getXmlWriter();
- $this->writeRels($xmlWriter, $xmlRels);
+ $this->writeRels($xmlWriter, null, $this->media);
return $xmlWriter->getData();
}
+
+ /**
+ * Set media
+ *
+ * @param array $media
+ * @return self
+ */
+ public function setMedia($media)
+ {
+ $this->media = $media;
+
+ return $this;
+ }
}
diff --git a/src/PhpWord/Writer/Word2007/Part/Settings.php b/src/PhpWord/Writer/Word2007/Part/Settings.php
index cafc03da..862e419e 100644
--- a/src/PhpWord/Writer/Word2007/Part/Settings.php
+++ b/src/PhpWord/Writer/Word2007/Part/Settings.php
@@ -18,12 +18,14 @@
namespace PhpOffice\PhpWord\Writer\Word2007\Part;
/**
- * Word2007 settings part writer
+ * Word2007 settings part writer: word/settings.xml
*/
class Settings extends AbstractPart
{
/**
- * Write word/settings.xml
+ * Write part
+ *
+ * @return string
*/
public function write()
{
@@ -136,15 +138,4 @@ class Settings extends AbstractPart
$xmlWriter->endElement();
}
}
-
- /**
- * Write word/settings.xml
- *
- * @deprecated 0.11.0
- * @codeCoverageIgnore
- */
- public function writeSettings()
- {
- return $this->write();
- }
}
diff --git a/src/PhpWord/Writer/Word2007/Part/Styles.php b/src/PhpWord/Writer/Word2007/Part/Styles.php
index 4edd99aa..b6f64f61 100644
--- a/src/PhpWord/Writer/Word2007/Part/Styles.php
+++ b/src/PhpWord/Writer/Word2007/Part/Styles.php
@@ -20,32 +20,29 @@ namespace PhpOffice\PhpWord\Writer\Word2007\Part;
use PhpOffice\PhpWord\Exception\Exception;
use PhpOffice\PhpWord\PhpWord;
use PhpOffice\PhpWord\Shared\XMLWriter;
+use PhpOffice\PhpWord\Style;
use PhpOffice\PhpWord\Style\Font;
use PhpOffice\PhpWord\Style\Paragraph;
use PhpOffice\PhpWord\Style\Table;
-use PhpOffice\PhpWord\Style;
use PhpOffice\PhpWord\Writer\Word2007\Style\Font as FontStyleWriter;
use PhpOffice\PhpWord\Writer\Word2007\Style\Paragraph as ParagraphStyleWriter;
use PhpOffice\PhpWord\Writer\Word2007\Style\Table as TableStyleWriter;
/**
- * Word2007 styles part writer
+ * Word2007 styles part writer: word/styles.xml
*
* @todo Do something with the numbering style introduced in 0.10.0
*/
class Styles extends AbstractPart
{
/**
- * Write word/styles.xml
+ * Write part
*
* @return string
*/
public function write()
{
- $phpWord = $this->parentWriter->getPhpWord();
- if (is_null($phpWord)) {
- throw new Exception('No PhpWord assigned.');
- }
+ $phpWord = $this->getParentWriter()->getPhpWord();
$xmlWriter = $this->getXmlWriter();
$xmlWriter->startDocument('1.0', 'UTF-8', 'yes');
@@ -220,17 +217,4 @@ class Styles extends AbstractPart
$xmlWriter->endElement(); // w:style
}
}
-
- /**
- * Write word/styles.xml
- *
- * @param \PhpOffice\PhpWord\PhpWord $phpWord
- * @deprecated 0.11.0
- * @codeCoverageIgnore
- */
- public function writeStyles(PhpWord $phpWord = null)
- {
- $this->parentWriter->setPhpWord($phpWord);
- return $this->write();
- }
}
diff --git a/src/PhpWord/Writer/Word2007/Part/Theme.php b/src/PhpWord/Writer/Word2007/Part/Theme.php
index 76638e70..481b1d64 100644
--- a/src/PhpWord/Writer/Word2007/Part/Theme.php
+++ b/src/PhpWord/Writer/Word2007/Part/Theme.php
@@ -18,14 +18,16 @@
namespace PhpOffice\PhpWord\Writer\Word2007\Part;
/**
- * Word2007 theme writer
+ * Word2007 theme writer: word/theme/theme1.xml
*
* @since 0.10.0
*/
class Theme extends AbstractPart
{
/**
- * Write theme/theme1.xml
+ * Write part
+ *
+ * @return string
*/
public function write()
{
diff --git a/src/PhpWord/Writer/Word2007/Part/WebSettings.php b/src/PhpWord/Writer/Word2007/Part/WebSettings.php
index 2dcf2e76..f800ebde 100644
--- a/src/PhpWord/Writer/Word2007/Part/WebSettings.php
+++ b/src/PhpWord/Writer/Word2007/Part/WebSettings.php
@@ -18,12 +18,14 @@
namespace PhpOffice\PhpWord\Writer\Word2007\Part;
/**
- * Word2007 web settings part writer
+ * Word2007 web settings part writer: word/webSettings.xml
*/
class WebSettings extends Settings
{
/**
- * Write word/webSettings.xml
+ * Write part
+ *
+ * @return string
*/
public function write()
{
@@ -46,15 +48,4 @@ class WebSettings extends Settings
return $xmlWriter->getData();
}
-
- /**
- * Write word/webSettings.xml
- *
- * @deprecated 0.11.0
- * @codeCoverageIgnore
- */
- public function writeWebSettings()
- {
- return $this->write();
- }
}
diff --git a/src/PhpWord/Writer/Word2007/Style/Section.php b/src/PhpWord/Writer/Word2007/Style/Section.php
index 3d967e6e..05fc1d08 100644
--- a/src/PhpWord/Writer/Word2007/Style/Section.php
+++ b/src/PhpWord/Writer/Word2007/Style/Section.php
@@ -50,14 +50,20 @@ class Section extends AbstractStyle
$this->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),
+ );
$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));
+ foreach ($margins as $attribute => $value) {
+ list($method, $default) = $value;
+ $this->xmlWriter->writeAttribute($attribute, $this->convertTwip($this->style->$method(), $default));
+ }
$this->xmlWriter->endElement();
// Borders
@@ -91,7 +97,10 @@ class Section extends AbstractStyle
// 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->writeAttribute('w:space', $this->convertTwip(
+ $this->style->getColsSpace(),
+ SectionStyle::DEFAULT_COLUMN_SPACING
+ ));
$this->xmlWriter->endElement();
// Line numbering
diff --git a/tests/PhpWord/Tests/Style/SectionTest.php b/tests/PhpWord/Tests/Style/SectionTest.php
index 3ae06561..a6b386d9 100644
--- a/tests/PhpWord/Tests/Style/SectionTest.php
+++ b/tests/PhpWord/Tests/Style/SectionTest.php
@@ -63,7 +63,8 @@ class SettingsTest extends \PHPUnit_Framework_TestCase
$this->assertEquals($iVal, $oSettings->getHeaderHeight());
$oSettings->setSettingValue('lineNumbering', array());
- $oSettings->setSettingValue('lineNumbering', array('start' => 1, 'increment' => 1, 'distance' => 240, 'restart' => 'newPage'));
+ $oSettings->setSettingValue('lineNumbering', array('start' => 1, 'increment' => 1,
+ 'distance' => 240, 'restart' => 'newPage'));
$this->assertInstanceOf('PhpOffice\\PhpWord\\Style\\LineNumbering', $oSettings->getLineNumbering());
$oSettings->setSettingValue('lineNumbering', null);
diff --git a/tests/PhpWord/Tests/Writer/HTMLTest.php b/tests/PhpWord/Tests/Writer/HTMLTest.php
index 5bfb2720..1c2a5049 100644
--- a/tests/PhpWord/Tests/Writer/HTMLTest.php
+++ b/tests/PhpWord/Tests/Writer/HTMLTest.php
@@ -64,7 +64,8 @@ class HTMLTest extends \PHPUnit_Framework_TestCase
$docProps = $phpWord->getDocumentProperties();
$docProps->setTitle('HTML Test');
- $phpWord->addFontStyle('Font', array('name' => 'Verdana', 'size' => 11, 'color' => 'FF0000', 'fgColor' => 'FF0000'));
+ $phpWord->addFontStyle('Font', array('name' => 'Verdana', 'size' => 11,
+ 'color' => 'FF0000', 'fgColor' => 'FF0000'));
$phpWord->addParagraphStyle('Paragraph', array('align' => 'center'));
$section = $phpWord->addSection();
$section->addText('Test 1', 'Font', 'Paragraph');
diff --git a/tests/PhpWord/Tests/Writer/ODText/Part/ContentTest.php b/tests/PhpWord/Tests/Writer/ODText/Part/ContentTest.php
index cd264866..619e3573 100644
--- a/tests/PhpWord/Tests/Writer/ODText/Part/ContentTest.php
+++ b/tests/PhpWord/Tests/Writer/ODText/Part/ContentTest.php
@@ -36,18 +36,6 @@ class ContentTest extends \PHPUnit_Framework_TestCase
TestHelperDOCX::clear();
}
- /**
- * Test construct with no PhpWord
- *
- * @expectedException \PhpOffice\PhpWord\Exception\Exception
- * @expectedExceptionMessage No PhpWord assigned.
- */
- public function testConstructNoPhpWord()
- {
- $object = new Content();
- $object->writeContent();
- }
-
/**
* Test write content
*/
diff --git a/tests/PhpWord/Tests/Writer/ODText/Part/MetaTest.php b/tests/PhpWord/Tests/Writer/ODText/Part/MetaTest.php
deleted file mode 100644
index 00dbf1ba..00000000
--- a/tests/PhpWord/Tests/Writer/ODText/Part/MetaTest.php
+++ /dev/null
@@ -1,40 +0,0 @@
-writeMeta();
- }
-}
diff --git a/tests/PhpWord/Tests/Writer/ODText/Part/StylesTest.php b/tests/PhpWord/Tests/Writer/ODText/Part/StylesTest.php
deleted file mode 100644
index a0cbaf7d..00000000
--- a/tests/PhpWord/Tests/Writer/ODText/Part/StylesTest.php
+++ /dev/null
@@ -1,40 +0,0 @@
-writeStyles();
- }
-}
diff --git a/tests/PhpWord/Tests/Writer/RTFTest.php b/tests/PhpWord/Tests/Writer/RTFTest.php
index 2f7c0403..ad5a13e1 100644
--- a/tests/PhpWord/Tests/Writer/RTFTest.php
+++ b/tests/PhpWord/Tests/Writer/RTFTest.php
@@ -58,7 +58,8 @@ class RTFTest extends \PHPUnit_Framework_TestCase
$file = __DIR__ . "/../_files/temp.rtf";
$phpWord = new PhpWord();
- $phpWord->addFontStyle('Font', array('name' => 'Verdana', 'size' => 11, 'color' => 'FF0000', 'fgColor' => 'FF0000'));
+ $phpWord->addFontStyle('Font', array('name' => 'Verdana', 'size' => 11,
+ 'color' => 'FF0000', 'fgColor' => 'FF0000'));
$phpWord->addParagraphStyle('Paragraph', array('align' => 'center'));
$section = $phpWord->addSection();
$section->addText('Test 1', 'Font', 'Paragraph');
diff --git a/tests/PhpWord/Tests/Writer/Word2007/Part/DocPropsTest.php b/tests/PhpWord/Tests/Writer/Word2007/Part/DocPropsTest.php
deleted file mode 100644
index 734cb767..00000000
--- a/tests/PhpWord/Tests/Writer/Word2007/Part/DocPropsTest.php
+++ /dev/null
@@ -1,52 +0,0 @@
-writeDocPropsApp();
- }
-
- /**
- * Test write docProps/core.xml with no PhpWord
- *
- * @expectedException \PhpOffice\PhpWord\Exception\Exception
- * @expectedExceptionMessage No PhpWord assigned.
- */
- public function testWriteDocPropsCoreNoPhpWord()
- {
- $object = new DocProps();
- $object->writeDocPropsCore();
- }
-}
diff --git a/tests/PhpWord/Tests/Writer/Word2007/Part/DocumentTest.php b/tests/PhpWord/Tests/Writer/Word2007/Part/DocumentTest.php
index d9c1f40f..8971133e 100644
--- a/tests/PhpWord/Tests/Writer/Word2007/Part/DocumentTest.php
+++ b/tests/PhpWord/Tests/Writer/Word2007/Part/DocumentTest.php
@@ -36,18 +36,6 @@ class DocumentTest extends \PHPUnit_Framework_TestCase
TestHelperDOCX::clear();
}
- /**
- * Test write word/document.xm with no PhpWord
- *
- * @expectedException \PhpOffice\PhpWord\Exception\Exception
- * @expectedExceptionMessage No PhpWord assigned.
- */
- public function testWriteDocumentNoPhpWord()
- {
- $object = new Document();
- $object->writeDocument();
- }
-
/**
* Write end section page numbering
*/
@@ -121,8 +109,8 @@ class DocumentTest extends \PHPUnit_Framework_TestCase
$phpWord = new PhpWord();
$phpWord->addParagraphStyle('pStyle', array('align' => 'center')); // Style #1
- $phpWord->addFontStyle('fStyle', array('size' => '20', 'doubleStrikethrough' => true, 'allCaps' => true)); // Style #2
- $phpWord->addTitleStyle(1, array('color' => '333333', 'bold' => true)); // Style #3
+ $phpWord->addFontStyle('fStyle', array('size' => '20', 'bold' => true, 'allCaps' => true)); // Style #2
+ $phpWord->addTitleStyle(1, array('color' => '333333', 'doubleStrikethrough' => true)); // Style #3
$fontStyle = new Font('text', array('align' => 'center'));
$section = $phpWord->addSection();
$section->addListItem('List Item', 0, null, null, 'pStyle'); // Style #4
diff --git a/tests/PhpWord/Tests/Writer/Word2007/Part/FooterTest.php b/tests/PhpWord/Tests/Writer/Word2007/Part/FooterTest.php
index 50074c6b..5c9d2d30 100644
--- a/tests/PhpWord/Tests/Writer/Word2007/Part/FooterTest.php
+++ b/tests/PhpWord/Tests/Writer/Word2007/Part/FooterTest.php
@@ -29,8 +29,6 @@ class FooterTest extends \PHPUnit_Framework_TestCase
{
/**
* Write footer
- *
- * @covers ::writeFooter
*/
public function testWriteFooter()
{
@@ -44,11 +42,11 @@ class FooterTest extends \PHPUnit_Framework_TestCase
$container->addImage($imageSrc);
$writer = new Word2007();
+ $writer->setUseDiskCaching(true);
$object = new Footer();
$object->setParentWriter($writer);
- $object->writeFooter($container);
- $writer->setUseDiskCaching(true);
- $xml = simplexml_load_string($object->writeFooter($container));
+ $object->setElement($container);
+ $xml = simplexml_load_string($object->write());
$this->assertInstanceOf('SimpleXMLElement', $xml);
}
diff --git a/tests/PhpWord/Tests/Writer/Word2007/Part/HeaderTest.php b/tests/PhpWord/Tests/Writer/Word2007/Part/HeaderTest.php
index 85dab778..e8c31ecf 100644
--- a/tests/PhpWord/Tests/Writer/Word2007/Part/HeaderTest.php
+++ b/tests/PhpWord/Tests/Writer/Word2007/Part/HeaderTest.php
@@ -43,11 +43,11 @@ class HeaderTest extends \PHPUnit_Framework_TestCase
$container->addWatermark($imageSrc);
$writer = new Word2007();
+ $writer->setUseDiskCaching(true);
$object = new Header();
$object->setParentWriter($writer);
- $object->writeHeader($container);
- $writer->setUseDiskCaching(true);
- $xml = simplexml_load_string($object->writeHeader($container));
+ $object->setElement($container);
+ $xml = simplexml_load_string($object->write());
$this->assertInstanceOf('SimpleXMLElement', $xml);
}
diff --git a/tests/PhpWord/Tests/Writer/Word2007/Part/StylesTest.php b/tests/PhpWord/Tests/Writer/Word2007/Part/StylesTest.php
index c1a33f0a..795d3e8a 100644
--- a/tests/PhpWord/Tests/Writer/Word2007/Part/StylesTest.php
+++ b/tests/PhpWord/Tests/Writer/Word2007/Part/StylesTest.php
@@ -36,18 +36,6 @@ class StylesTest extends \PHPUnit_Framework_TestCase
TestHelperDOCX::clear();
}
- /**
- * Test construct with no PhpWord
- *
- * @expectedException \PhpOffice\PhpWord\Exception\Exception
- * @expectedExceptionMessage No PhpWord assigned.
- */
- public function testConstructNoPhpWord()
- {
- $object = new Styles();
- $object->writeStyles();
- }
-
/**
* Test write styles
*/
diff --git a/tests/PhpWord/Tests/Writer/Word2007Test.php b/tests/PhpWord/Tests/Writer/Word2007Test.php
index 46df1aae..5ca5759c 100644
--- a/tests/PhpWord/Tests/Writer/Word2007Test.php
+++ b/tests/PhpWord/Tests/Writer/Word2007Test.php
@@ -45,7 +45,7 @@ class Word2007Test extends \PHPUnit_Framework_TestCase
$writerParts = array(
'ContentTypes' => 'ContentTypes',
'Rels' => 'Rels',
- 'DocProps' => 'DocProps',
+ 'DocPropsApp' => 'DocPropsApp',
'Document' => 'Document',
'Styles' => 'Styles',
'Numbering' => 'Numbering',