diff --git a/Classes/PHPWord/Reader/Word2007.php b/Classes/PHPWord/Reader/Word2007.php
index 48a13e59..4d372f27 100644
--- a/Classes/PHPWord/Reader/Word2007.php
+++ b/Classes/PHPWord/Reader/Word2007.php
@@ -254,8 +254,8 @@ class PHPWord_Reader_Word2007 extends PHPWord_Reader_Abstract implements
if ($elm->getName() != 'style') {
continue;
}
- unset($pStyle);
- unset($fStyle);
+ $pStyle = null;
+ $fStyle = null;
$hasParagraphStyle = isset($elm->pPr);
$hasFontStyle = isset($elm->rPr);
$styleName = (string)$elm->name['val'];
diff --git a/Classes/PHPWord/Writer/ODText/Content.php b/Classes/PHPWord/Writer/ODText/Content.php
index 7ee571a3..b788478e 100755
--- a/Classes/PHPWord/Writer/ODText/Content.php
+++ b/Classes/PHPWord/Writer/ODText/Content.php
@@ -253,28 +253,25 @@ class PHPWord_Writer_ODText_Content extends PHPWord_Writer_ODText_WriterPart
$this->_writeTextRun($objWriter, $element);
} elseif ($element instanceof PHPWord_Section_TextBreak) {
$this->_writeTextBreak($objWriter);
- /*
} elseif ($element instanceof PHPWord_Section_Link) {
- $this->_writeLink($objWriter, $element);
+ $this->writeUnsupportedElement($objWriter, 'link');
} elseif ($element instanceof PHPWord_Section_Title) {
- $this->_writeTitle($objWriter, $element);
+ $this->writeUnsupportedElement($objWriter, 'title');
} elseif ($element instanceof PHPWord_Section_PageBreak) {
- $this->_writePageBreak($objWriter);
+ $this->writeUnsupportedElement($objWriter, 'page break');
} elseif ($element instanceof PHPWord_Section_Table) {
- $this->_writeTable($objWriter, $element);
+ $this->writeUnsupportedElement($objWriter, 'table');
} elseif ($element instanceof PHPWord_Section_ListItem) {
- $this->_writeListItem($objWriter, $element);
+ $this->writeUnsupportedElement($objWriter, 'list item');
} elseif ($element instanceof PHPWord_Section_Image ||
$element instanceof PHPWord_Section_MemoryImage) {
- $this->_writeImage($objWriter, $element);
+ $this->writeUnsupportedElement($objWriter, 'image');
} elseif ($element instanceof PHPWord_Section_Object) {
- $this->_writeObject($objWriter, $element);
+ $this->writeUnsupportedElement($objWriter, 'object');
} elseif ($element instanceof PHPWord_TOC) {
- $this->_writeTOC($objWriter);
- */
+ $this->writeUnsupportedElement($objWriter, 'TOC');
} else {
- print_r($element);
- echo '
';
+ $this->writeUnsupportedElement($objWriter, 'other');
}
}
@@ -387,4 +384,17 @@ class PHPWord_Writer_ODText_Content extends PHPWord_Writer_ODText_WriterPart
private function _writeSection(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section $section = null)
{
}
+
+ /**
+ * Write unsupported element
+ *
+ * @param PHPWord_Shared_XMLWriter $objWriter
+ * @param string $element
+ */
+ private function writeUnsupportedElement($objWriter, $element)
+ {
+ $objWriter->startElement('text:p');
+ $objWriter->writeRaw("Cannot write content. This version of PHPWord has not supported {$element} element in ODText.");
+ $objWriter->endElement();
+ }
}
diff --git a/Classes/PHPWord/Writer/RTF.php b/Classes/PHPWord/Writer/RTF.php
index 66ec7383..7730e2bd 100755
--- a/Classes/PHPWord/Writer/RTF.php
+++ b/Classes/PHPWord/Writer/RTF.php
@@ -314,28 +314,25 @@ class PHPWord_Writer_RTF implements PHPWord_Writer_IWriter
$sRTFBody .= $this->getDataContentTextBreak();
} elseif ($element instanceof PHPWord_Section_TextRun) {
$sRTFBody .= $this->getDataContentTextRun($element);
- /*
} elseif($element instanceof PHPWord_Section_Link) {
- $this->_writeLink($objWriter, $element);
+ $sRTFBody .= $this->getDataContentUnsupportedElement('link');
} elseif($element instanceof PHPWord_Section_Title) {
- $this->_writeTitle($objWriter, $element);
+ $sRTFBody .= $this->getDataContentUnsupportedElement('title');
} elseif($element instanceof PHPWord_Section_PageBreak) {
- $this->_writePageBreak($objWriter);
+ $sRTFBody .= $this->getDataContentUnsupportedElement('page break');
} elseif($element instanceof PHPWord_Section_Table) {
- $this->_writeTable($objWriter, $element);
+ $sRTFBody .= $this->getDataContentUnsupportedElement('table');
} elseif($element instanceof PHPWord_Section_ListItem) {
- $this->_writeListItem($objWriter, $element);
+ $sRTFBody .= $this->getDataContentUnsupportedElement('list item');
} elseif($element instanceof PHPWord_Section_Image ||
$element instanceof PHPWord_Section_MemoryImage) {
- $this->_writeImage($objWriter, $element);
+ $sRTFBody .= $this->getDataContentUnsupportedElement('image');
} elseif($element instanceof PHPWord_Section_Object) {
- $this->_writeObject($objWriter, $element);
+ $sRTFBody .= $this->getDataContentUnsupportedElement('object');
} elseif($element instanceof PHPWord_TOC) {
- $this->_writeTOC($objWriter);
- */
+ $sRTFBody .= $this->getDataContentUnsupportedElement('TOC');
} else {
- print_r($element);
- echo '
';
+ $sRTFBody .= $this->getDataContentUnsupportedElement('other');
}
}
}
@@ -381,7 +378,7 @@ class PHPWord_Writer_RTF implements PHPWord_Writer_IWriter
$this->_lastParagraphStyle = '';
}
- if ($styleFont) {
+ if ($styleFont instanceof PHPWord_Style_Font) {
if ($styleFont->getColor() != null) {
$idxColor = array_search($styleFont->getColor(), $this->_colorTable);
if ($idxColor !== false) {
@@ -413,7 +410,7 @@ class PHPWord_Writer_RTF implements PHPWord_Writer_IWriter
}
$sRTFText .= $text->getText();
- if ($styleFont) {
+ if ($styleFont instanceof PHPWord_Style_Font) {
$sRTFText .= '\cf0';
$sRTFText .= '\f0';
@@ -461,4 +458,19 @@ class PHPWord_Writer_RTF implements PHPWord_Writer_IWriter
return '\par' . PHP_EOL;
}
+
+ /**
+ * Write unsupported element
+ *
+ * @param string $element
+ */
+ private function getDataContentUnsupportedElement($element)
+ {
+ $sRTFText = '';
+ $sRTFText .= '\pard\nowidctlpar' . PHP_EOL;
+ $sRTFText .= "Cannot write content. This version of PHPWord has not supported {$element} element in RTF.";
+ $sRTFText .= '\par' . PHP_EOL;
+
+ return $sRTFText;
+ }
}
diff --git a/Tests/PHPWord/SectionTest.php b/Tests/PHPWord/SectionTest.php
index 3af02eca..5380f84d 100644
--- a/Tests/PHPWord/SectionTest.php
+++ b/Tests/PHPWord/SectionTest.php
@@ -4,26 +4,41 @@ namespace PHPWord\Tests;
use PHPUnit_Framework_TestCase;
use PHPWord_Section;
+/**
+ * @covers PHPWord_Section
+ */
class SectionTest extends \PHPUnit_Framework_TestCase
{
+ /**
+ * @covers PHPWord_Section::getSettings
+ */
public function testGetSettings()
{
$oSection = new PHPWord_Section(0);
$this->assertAttributeEquals($oSection->getSettings(), '_settings', new PHPWord_Section(0));
}
- public function testGetElementss()
+ /**
+ * @covers PHPWord_Section::getElements
+ */
+ public function testGetElements()
{
$oSection = new PHPWord_Section(0);
$this->assertAttributeEquals($oSection->getElements(), '_elementCollection', new PHPWord_Section(0));
}
+ /**
+ * @covers PHPWord_Section::getFooter
+ */
public function testGetFooter()
{
$oSection = new PHPWord_Section(0);
$this->assertAttributeEquals($oSection->getFooter(), '_footer', new PHPWord_Section(0));
}
+ /**
+ * @covers PHPWord_Section::getHeaders
+ */
public function testGetHeaders()
{
$oSection = new PHPWord_Section(0);
diff --git a/samples/Sample_01_SimpleText.php b/samples/Sample_01_SimpleText.php
index 4b055cca..2a251c96 100755
--- a/samples/Sample_01_SimpleText.php
+++ b/samples/Sample_01_SimpleText.php
@@ -1,13 +1,7 @@
');
-}
-
+define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '
');
require_once '../Classes/PHPWord.php';
// New Word Document
@@ -29,22 +23,16 @@ $PHPWord->addParagraphStyle('pStyle', array('align'=>'center', 'spaceAfter'=>100
$section->addText('I am styled by two style definitions.', 'rStyle', 'pStyle');
$section->addText('I have only a paragraph style definition.', null, 'pStyle');
-// Save File
-echo date('H:i:s') , " Write to Word2007 format" , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
-$objWriter->save(str_replace('.php', '.docx', __FILE__));
+// Save file
+$name = basename(__FILE__, '.php');
+$writers = array('Word2007' => 'docx', 'ODText' => 'odt', 'RTF' => 'rtf');
+foreach ($writers as $writer => $extension) {
+ echo date('H:i:s'), " Write to {$writer} format", EOL;
+ $objWriter = PHPWord_IOFactory::createWriter($PHPWord, $writer);
+ $objWriter->save("{$name}.{$extension}");
+ rename("{$name}.{$extension}", "results/{$name}.{$extension}");
+}
-echo date('H:i:s') , " Write to OpenDocumentText format" , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'ODText');
-$objWriter->save(str_replace('.php', '.odt', __FILE__));
-
-echo date('H:i:s') , " Write to RTF format" , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'RTF');
-$objWriter->save(str_replace('.php', '.rtf', __FILE__));
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
+// Done
+echo date('H:i:s'), " Done writing file(s)", EOL;
+echo date('H:i:s'), " Peak memory usage: ", (memory_get_peak_usage(true) / 1024 / 1024), " MB", EOL;
diff --git a/samples/Sample_02_TabStops.php b/samples/Sample_02_TabStops.php
index 177e8598..e9e2d84b 100755
--- a/samples/Sample_02_TabStops.php
+++ b/samples/Sample_02_TabStops.php
@@ -1,14 +1,7 @@
');
-}
-
+define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '
');
require_once '../Classes/PHPWord.php';
// New Word Document
@@ -42,22 +35,16 @@ $section->addText("Multiple Tabs:\tOne\tTwo\tThree", NULL, 'multipleTab');
$section->addText("Left Aligned\tRight Aligned", NULL, 'rightTab');
$section->addText("\tCenter Aligned", NULL, 'centerTab');
-// Save File
-echo date('H:i:s') , ' Write to Word2007 format' , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
-$objWriter->save(str_replace('.php', '.docx', __FILE__));
+// Save file
+$name = basename(__FILE__, '.php');
+$writers = array('Word2007' => 'docx', 'ODText' => 'odt', 'RTF' => 'rtf');
+foreach ($writers as $writer => $extension) {
+ echo date('H:i:s'), " Write to {$writer} format", EOL;
+ $objWriter = PHPWord_IOFactory::createWriter($PHPWord, $writer);
+ $objWriter->save("{$name}.{$extension}");
+ rename("{$name}.{$extension}", "results/{$name}.{$extension}");
+}
-echo date('H:i:s') , ' Write to OpenDocumentText format' , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'ODText');
-$objWriter->save(str_replace('.php', '.odt', __FILE__));
-
-echo date('H:i:s') , ' Write to RTF format' , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'RTF');
-$objWriter->save(str_replace('.php', '.rtf', __FILE__));
-
-
-// Echo memory peak usage
-echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , ' MB' , EOL;
-
-// Echo done
-echo date('H:i:s') , ' Done writing file' , EOL;
\ No newline at end of file
+// Done
+echo date('H:i:s'), " Done writing file(s)", EOL;
+echo date('H:i:s'), " Peak memory usage: ", (memory_get_peak_usage(true) / 1024 / 1024), " MB", EOL;
diff --git a/samples/Sample_03_Sections.php b/samples/Sample_03_Sections.php
index afca97da..1e49629e 100755
--- a/samples/Sample_03_Sections.php
+++ b/samples/Sample_03_Sections.php
@@ -1,13 +1,7 @@
');
-}
-
+define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '
');
require_once '../Classes/PHPWord.php';
// New Word Document
@@ -34,22 +28,16 @@ $section->addText('This section and we play with header/footer height.');
$section->createHeader()->addText('Header');
$section->createFooter()->addText('Footer');
-// Save File
-echo date('H:i:s') , ' Write to Word2007 format' , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
-$objWriter->save(str_replace('.php', '.docx', __FILE__));
+// Save file
+$name = basename(__FILE__, '.php');
+$writers = array('Word2007' => 'docx', 'ODText' => 'odt', 'RTF' => 'rtf');
+foreach ($writers as $writer => $extension) {
+ echo date('H:i:s'), " Write to {$writer} format", EOL;
+ $objWriter = PHPWord_IOFactory::createWriter($PHPWord, $writer);
+ $objWriter->save("{$name}.{$extension}");
+ rename("{$name}.{$extension}", "results/{$name}.{$extension}");
+}
-echo date('H:i:s') , ' Write to OpenDocumentText format' , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'ODText');
-$objWriter->save(str_replace('.php', '.odt', __FILE__));
-
-echo date('H:i:s') , ' Write to RTF format' , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'RTF');
-$objWriter->save(str_replace('.php', '.rtf', __FILE__));
-
-
-// Echo memory peak usage
-echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , ' MB' , EOL;
-
-// Echo done
-echo date('H:i:s') , ' Done writing file' , EOL;
+// Done
+echo date('H:i:s'), " Done writing file(s)", EOL;
+echo date('H:i:s'), " Peak memory usage: ", (memory_get_peak_usage(true) / 1024 / 1024), " MB", EOL;
diff --git a/samples/Sample_04_Textrun.php b/samples/Sample_04_Textrun.php
index ac0906c9..ce70417e 100644
--- a/samples/Sample_04_Textrun.php
+++ b/samples/Sample_04_Textrun.php
@@ -1,14 +1,7 @@
');
-}
-
+define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '
');
require_once '../Classes/PHPWord.php';
// New Word Document
@@ -42,21 +35,16 @@ $textrun->addText(' Sample Image: ');
$textrun->addImage('old/_earth.jpg', array('width'=>18, 'height'=>18));
$textrun->addText(' Here is some more text. ');
-// Save File
-echo date('H:i:s') , ' Write to Word2007 format' , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
-$objWriter->save(str_replace('.php', '.docx', __FILE__));
+// Save file
+$name = basename(__FILE__, '.php');
+$writers = array('Word2007' => 'docx', 'ODText' => 'odt', 'RTF' => 'rtf');
+foreach ($writers as $writer => $extension) {
+ echo date('H:i:s'), " Write to {$writer} format", EOL;
+ $objWriter = PHPWord_IOFactory::createWriter($PHPWord, $writer);
+ $objWriter->save("{$name}.{$extension}");
+ rename("{$name}.{$extension}", "results/{$name}.{$extension}");
+}
-echo date('H:i:s') , ' Write to OpenDocumentText format' , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'ODText');
-$objWriter->save(str_replace('.php', '.odt', __FILE__));
-
-echo date('H:i:s') , ' Write to RTF format' , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'RTF');
-$objWriter->save(str_replace('.php', '.rtf', __FILE__));
-
-// Echo memory peak usage
-echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , ' MB' , EOL;
-
-// Echo done
-echo date('H:i:s') , ' Done writing file' , EOL;
\ No newline at end of file
+// Done
+echo date('H:i:s'), " Done writing file(s)", EOL;
+echo date('H:i:s'), " Peak memory usage: ", (memory_get_peak_usage(true) / 1024 / 1024), " MB", EOL;
diff --git a/samples/Sample_05_Multicolumn.php b/samples/Sample_05_Multicolumn.php
index 7f0a75d0..3877defe 100644
--- a/samples/Sample_05_Multicolumn.php
+++ b/samples/Sample_05_Multicolumn.php
@@ -1,14 +1,7 @@
');
-}
-
+define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '
');
require_once '../Classes/PHPWord.php';
// New Word Document
@@ -45,22 +38,16 @@ $section->addText('Three columns, half inch (720 twips) spacing. ' . $filler);
$section = $PHPWord->createSection(array('breakType' => 'continuous'));
$section->addText('Normal paragraph again.');
-// Save File
-echo date('H:i:s') , " Write to Word2007 format" , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
-$objWriter->save(str_replace('.php', '.docx', __FILE__));
+// Save file
+$name = basename(__FILE__, '.php');
+$writers = array('Word2007' => 'docx', 'ODText' => 'odt', 'RTF' => 'rtf');
+foreach ($writers as $writer => $extension) {
+ echo date('H:i:s'), " Write to {$writer} format", EOL;
+ $objWriter = PHPWord_IOFactory::createWriter($PHPWord, $writer);
+ $objWriter->save("{$name}.{$extension}");
+ rename("{$name}.{$extension}", "results/{$name}.{$extension}");
+}
-echo date('H:i:s') , " Write to OpenDocumentText format" , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'ODText');
-$objWriter->save(str_replace('.php', '.odt', __FILE__));
-
-echo date('H:i:s') , " Write to RTF format" , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'RTF');
-$objWriter->save(str_replace('.php', '.rtf', __FILE__));
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
+// Done
+echo date('H:i:s'), " Done writing file(s)", EOL;
+echo date('H:i:s'), " Peak memory usage: ", (memory_get_peak_usage(true) / 1024 / 1024), " MB", EOL;
diff --git a/samples/Sample_06_Footnote.php b/samples/Sample_06_Footnote.php
index 123dedcc..daaa6b46 100755
--- a/samples/Sample_06_Footnote.php
+++ b/samples/Sample_06_Footnote.php
@@ -1,12 +1,7 @@
');
-}
+define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '
');
require_once '../Classes/PHPWord.php';
// New Word Document
@@ -41,14 +36,16 @@ $section->addText('You can also create the footnote directly from the section ma
$footnote = $section->createFootnote();
$footnote->addText('The reference for this is wrapped in its own line');
-// Save File
-echo date('H:i:s') , " Write to Word2007 format" , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
-$objWriter->save(str_replace('.php', '.docx', __FILE__));
+// Save file
+$name = basename(__FILE__, '.php');
+$writers = array('Word2007' => 'docx', 'ODText' => 'odt', 'RTF' => 'rtf');
+foreach ($writers as $writer => $extension) {
+ echo date('H:i:s'), " Write to {$writer} format", EOL;
+ $objWriter = PHPWord_IOFactory::createWriter($PHPWord, $writer);
+ $objWriter->save("{$name}.{$extension}");
+ rename("{$name}.{$extension}", "results/{$name}.{$extension}");
+}
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
+// Done
+echo date('H:i:s'), " Done writing file(s)", EOL;
+echo date('H:i:s'), " Peak memory usage: ", (memory_get_peak_usage(true) / 1024 / 1024), " MB", EOL;
diff --git a/samples/Sample_07_TemplateCloneRow.php b/samples/Sample_07_TemplateCloneRow.php
index ccdee2c3..f797b986 100755
--- a/samples/Sample_07_TemplateCloneRow.php
+++ b/samples/Sample_07_TemplateCloneRow.php
@@ -1,9 +1,14 @@
');
require_once '../Classes/PHPWord.php';
+// New Word document
+echo date('H:i:s') , " Create new PHPWord object" , EOL;
$PHPWord = new PHPWord();
-$document = $PHPWord->loadTemplate('Sample_07_TemplateCloneRow.docx');
+$document = $PHPWord->loadTemplate('resources/Sample_07_TemplateCloneRow.docx');
// Simple table
$document->cloneRow('rowValue', 10);
@@ -51,4 +56,11 @@ $document->setValue('userFirstName#3', 'Michael');
$document->setValue('userName#3', 'Ray');
$document->setValue('userPhone#3', '+1 428 889 775');
-$document->saveAs('Sample_07_TemplateCloneRow_result.docx');
+$name = 'Sample_07_TemplateCloneRow_result.docx';
+echo date('H:i:s'), " Write to Word2007 format", EOL;
+$document->saveAs($name);
+rename($name, "results/{$name}");
+
+// Done
+echo date('H:i:s'), " Done writing file(s)", EOL;
+echo date('H:i:s'), " Peak memory usage: ", (memory_get_peak_usage(true) / 1024 / 1024), " MB", EOL;
diff --git a/samples/Sample_08_ParagraphPagination.php b/samples/Sample_08_ParagraphPagination.php
index 7bbead7a..edd1992c 100644
--- a/samples/Sample_08_ParagraphPagination.php
+++ b/samples/Sample_08_ParagraphPagination.php
@@ -1,14 +1,7 @@
');
-}
-
+define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '
');
require_once '../Classes/PHPWord.php';
// New Word document
@@ -55,22 +48,16 @@ $section->addText('Paragraph with pageBreakBefore = true (default: false). ' .
'heading styles.',
null, array('pageBreakBefore' => true));
-// Save File
-echo date('H:i:s') , " Write to Word2007 format" , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
-$objWriter->save(str_replace('.php', '.docx', __FILE__));
+// Save file
+$name = basename(__FILE__, '.php');
+$writers = array('Word2007' => 'docx', 'ODText' => 'odt', 'RTF' => 'rtf');
+foreach ($writers as $writer => $extension) {
+ echo date('H:i:s'), " Write to {$writer} format", EOL;
+ $objWriter = PHPWord_IOFactory::createWriter($PHPWord, $writer);
+ $objWriter->save("{$name}.{$extension}");
+ rename("{$name}.{$extension}", "results/{$name}.{$extension}");
+}
-echo date('H:i:s') , " Write to OpenDocumentText format" , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'ODText');
-$objWriter->save(str_replace('.php', '.odt', __FILE__));
-
-echo date('H:i:s') , " Write to RTF format" , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'RTF');
-$objWriter->save(str_replace('.php', '.rtf', __FILE__));
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
+// Done
+echo date('H:i:s'), " Done writing file(s)", EOL;
+echo date('H:i:s'), " Peak memory usage: ", (memory_get_peak_usage(true) / 1024 / 1024), " MB", EOL;
diff --git a/samples/Sample_09_Tables.php b/samples/Sample_09_Tables.php
index f90ac3c9..96e411a0 100644
--- a/samples/Sample_09_Tables.php
+++ b/samples/Sample_09_Tables.php
@@ -1,13 +1,7 @@
');
-}
-
+define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '
');
require_once '../Classes/PHPWord.php';
// New Word Document
@@ -82,21 +76,16 @@ $table->addCell(2000, $cellVCentered)->addText('C', null, $cellHCentered);
$table->addCell(2000, $cellVCentered)->addText('D', null, $cellHCentered);
$table->addCell(null, $cellRowContinue);
-// Save File
-echo date('H:i:s') , ' Write to Word2007 format' , EOL;
-$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
-$objWriter->save(str_replace('.php', '.docx', __FILE__));
+// Save file
+$name = basename(__FILE__, '.php');
+$writers = array('Word2007' => 'docx', 'ODText' => 'odt', 'RTF' => 'rtf');
+foreach ($writers as $writer => $extension) {
+ echo date('H:i:s'), " Write to {$writer} format", EOL;
+ $objWriter = PHPWord_IOFactory::createWriter($PHPWord, $writer);
+ $objWriter->save("{$name}.{$extension}");
+ rename("{$name}.{$extension}", "results/{$name}.{$extension}");
+}
-// echo date('H:i:s') , ' Write to OpenDocumentText format' , EOL;
-// $objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'ODText');
-// $objWriter->save(str_replace('.php', '.odt', __FILE__));
-//
-// echo date('H:i:s') , ' Write to RTF format' , EOL;
-// $objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'RTF');
-// $objWriter->save(str_replace('.php', '.rtf', __FILE__));
-
-// Echo memory peak usage
-echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , ' MB' , EOL;
-
-// Echo done
-echo date('H:i:s') , ' Done writing file' , EOL;
+// Done
+echo date('H:i:s'), " Done writing file(s)", EOL;
+echo date('H:i:s'), " Peak memory usage: ", (memory_get_peak_usage(true) / 1024 / 1024), " MB", EOL;
diff --git a/samples/Sample_10_ReadWord2007.php b/samples/Sample_10_ReadWord2007.php
index a837a574..d96e9264 100644
--- a/samples/Sample_10_ReadWord2007.php
+++ b/samples/Sample_10_ReadWord2007.php
@@ -1,33 +1,24 @@
');
-
require_once '../Classes/PHPWord.php';
// Read contents
-$sample = 'Sample_10_ReadWord2007';
-$source = "resources/{$sample}.docx";
-$target = "results/{$sample}";
-echo '
', date('H:i:s'), " Reading contents from `{$source}`
"; +$name = basename(__FILE__, '.php'); +$source = "resources/{$name}.docx"; +echo date('H:i:s'), " Reading contents from `{$source}`", EOL; $PHPWord = PHPWord_IOFactory::load($source); -// Rewrite contents -echo date('H:i:s') , " Write to Word2007 format" , EOL; -$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007'); -$objWriter->save("{$sample}.docx"); -rename("{$sample}.docx", "{$target}.docx"); +// (Re)write contents +$writers = array('Word2007' => 'docx', 'ODText' => 'odt', 'RTF' => 'rtf'); +foreach ($writers as $writer => $extension) { + echo date('H:i:s'), " Write to {$writer} format", EOL; + $objWriter = PHPWord_IOFactory::createWriter($PHPWord, $writer); + $objWriter->save("{$name}.{$extension}"); + rename("{$name}.{$extension}", "results/{$name}.{$extension}"); +} -echo date('H:i:s') , ' Write to OpenDocumentText format' , EOL; -$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'ODText'); -$objWriter->save("{$sample}.odt"); -rename("{$sample}.odt", "{$target}.odt"); - -echo date('H:i:s') , ' Write to RTF format' , EOL; -$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'RTF'); -$objWriter->save("{$sample}.rtf"); -rename("{$sample}.rtf", "{$target}.rtf"); - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; -echo date('H:i:s') , " Done writing file" , EOL; +// Done +echo date('H:i:s'), " Done writing file(s)", EOL; +echo date('H:i:s'), " Peak memory usage: ", (memory_get_peak_usage(true) / 1024 / 1024), " MB", EOL; diff --git a/samples/Sample_07_TemplateCloneRow.docx b/samples/resources/Sample_07_TemplateCloneRow.docx similarity index 100% rename from samples/Sample_07_TemplateCloneRow.docx rename to samples/resources/Sample_07_TemplateCloneRow.docx