2014-03-07 23:08:09 +01:00
< ? php
2014-03-12 21:55:20 +07:00
// Init
2014-03-07 23:08:09 +01:00
error_reporting ( E_ALL );
2014-03-12 21:55:20 +07:00
define ( 'EOL' , ( PHP_SAPI == 'cli' ) ? PHP_EOL : '<br />' );
2014-03-22 10:06:08 +04:00
require_once '../src/PhpWord.php' ;
2014-03-07 23:08:09 +01:00
// New Word Document
2014-03-20 16:54:12 +04:00
echo date ( 'H:i:s' ) , " Create new PhpWord object " , EOL ;
$phpWord = new PhpOffice\PhpWord ();
2014-03-07 23:08:09 +01:00
// New portrait section
2014-03-20 16:54:12 +04:00
$section = $phpWord -> createSection ();
2014-03-07 23:08:09 +01:00
// Add style definitions
2014-03-20 16:54:12 +04:00
$phpWord -> addParagraphStyle ( 'pStyle' , array ( 'spacing' => 100 ));
$phpWord -> addFontStyle ( 'BoldText' , array ( 'bold' => true ));
$phpWord -> addFontStyle ( 'ColoredText' , array ( 'color' => 'FF8080' ));
$phpWord -> addLinkStyle ( 'NLink' , array ( 'color' => '0000FF' , 'underline' => PhpOffice\PhpWord\Style\Font :: UNDERLINE_SINGLE ));
2014-03-07 23:08:09 +01:00
// Add text elements
$textrun = $section -> createTextRun ( 'pStyle' );
$textrun -> addText ( 'This is some lead text in a paragraph with a following footnote. ' , 'pStyle' );
$footnote = $textrun -> createFootnote ();
$footnote -> addText ( 'Just like a textrun a footnote can contain native text and link elements.' );
$footnote -> addText ( ' No break is placed after adding an element.' , 'BoldText' );
$footnote -> addText ( ' All elements are placed inside a paragraph.' , 'ColoredText' );
$footnote -> addText ( ' The best search engine: ' );
$footnote -> addLink ( 'http://www.google.com' , null , 'NLink' );
$footnote -> addText ( '. Also not bad: ' );
$footnote -> addLink ( 'http://www.bing.com' , null , 'NLink' );
$textrun -> addText ( 'The trailing text in the paragraph.' );
$section -> addText ( 'You can also create the footnote directly from the section making it wrap in a paragraph like the footnote below this paragraph. But is is best used from within a textrun.' );
$footnote = $section -> createFootnote ();
$footnote -> addText ( 'The reference for this is wrapped in its own line' );
2014-03-12 21:55:20 +07:00
// 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 ;
2014-03-20 16:54:12 +04:00
$xmlWriter = PhpOffice\PhpWord\IOFactory :: createWriter ( $phpWord , $writer );
2014-03-19 11:04:48 +04:00
$xmlWriter -> save ( " { $name } . { $extension } " );
2014-03-12 21:55:20 +07:00
rename ( " { $name } . { $extension } " , " results/ { $name } . { $extension } " );
}
2014-03-07 23:08:09 +01:00
2014-03-12 21:55:20 +07:00
// 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 ;