diff --git a/Classes/PHPWord.php b/Classes/PHPWord.php old mode 100644 new mode 100755 index feda8761..3879d7cd --- a/Classes/PHPWord.php +++ b/Classes/PHPWord.php @@ -2,7 +2,7 @@ /** * PHPWord * - * Copyright (c) 2011 PHPWord + * Copyright (c) 2013 PHPWord * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,13 +20,13 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 010 PHPWord + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version Beta 0.6.3, 08.07.2011 + * @version 0.7.0 */ /** PHPWORD_BASE_PATH */ -if(!defined('PHPWORD_BASE_PATH')) { +if (!defined('PHPWORD_BASE_PATH')) { define('PHPWORD_BASE_PATH', dirname(__FILE__) . '/'); require PHPWORD_BASE_PATH . 'PHPWord/Autoloader.php'; PHPWord_Autoloader::Register(); @@ -35,195 +35,208 @@ if(!defined('PHPWORD_BASE_PATH')) { /** * PHPWord - * - * @category PHPWord - * @package PHPWord - * @copyright Copyright (c) 2011 PHPWord */ -class PHPWord { - - /** - * Document properties - * - * @var PHPWord_DocumentProperties - */ - private $_properties; - - /** - * Default Font Name - * - * @var string - */ - private $_defaultFontName; - - /** - * Default Font Size - * - * @var int - */ - private $_defaultFontSize; - - /** - * Collection of section elements - * - * @var array - */ - private $_sectionCollection = array(); +class PHPWord +{ - - /** - * Create a new PHPWord Document - */ - public function __construct() { - $this->_properties = new PHPWord_DocumentProperties(); - $this->_defaultFontName = 'Arial'; - $this->_defaultFontSize = 20; - } + /** + * Document properties + * + * @var PHPWord_DocumentProperties + */ + private $_properties; + + /** + * Default Font Name + * + * @var string + */ + private $_defaultFontName; + + /** + * Default Font Size + * + * @var int + */ + private $_defaultFontSize; + + /** + * Collection of section elements + * + * @var array + */ + private $_sectionCollection = array(); + + + /** + * Create a new PHPWord Document + */ + public function __construct() + { + $this->_properties = new PHPWord_DocumentProperties(); + $this->_defaultFontName = 'Arial'; + $this->_defaultFontSize = 20; + } + + /** + * Get properties + * @return PHPWord_DocumentProperties + */ + public function getProperties() + { + return $this->_properties; + } + + /** + * Set properties + * + * @param PHPWord_DocumentProperties $value + * @return PHPWord + */ + public function setProperties(PHPWord_DocumentProperties $value) + { + $this->_properties = $value; + return $this; + } + + /** + * Create a new Section + * + * @param PHPWord_Section_Settings $settings + * @return PHPWord_Section + */ + public function createSection($settings = null) + { + $sectionCount = $this->_countSections() + 1; + + $section = new PHPWord_Section($sectionCount, $settings); + $this->_sectionCollection[] = $section; + return $section; + } + + /** + * Get default Font name + * @return string + */ + public function getDefaultFontName() + { + return $this->_defaultFontName; + } + + /** + * Set default Font name + * @param string $pValue + */ + public function setDefaultFontName($pValue) + { + $this->_defaultFontName = $pValue; + } + + /** + * Get default Font size + * @return string + */ + public function getDefaultFontSize() + { + return $this->_defaultFontSize; + } + + /** + * Set default Font size + * @param int $pValue + */ + public function setDefaultFontSize($pValue) + { + $pValue = $pValue * 2; + $this->_defaultFontSize = $pValue; + } + + /** + * Adds a paragraph style definition to styles.xml + * + * @param $styleName string + * @param $styles array + */ + public function addParagraphStyle($styleName, $styles) + { + PHPWord_Style::addParagraphStyle($styleName, $styles); + } + + /** + * Adds a font style definition to styles.xml + * + * @param $styleName string + * @param $styles array + */ + public function addFontStyle($styleName, $styleFont, $styleParagraph = null) + { + PHPWord_Style::addFontStyle($styleName, $styleFont, $styleParagraph); + } + + /** + * Adds a table style definition to styles.xml + * + * @param $styleName string + * @param $styles array + */ + public function addTableStyle($styleName, $styleTable, $styleFirstRow = null) + { + PHPWord_Style::addTableStyle($styleName, $styleTable, $styleFirstRow); + } + + /** + * Adds a heading style definition to styles.xml + * + * @param $titleCount int + * @param $styles array + */ + public function addTitleStyle($titleCount, $styleFont, $styleParagraph = null) + { + PHPWord_Style::addTitleStyle($titleCount, $styleFont, $styleParagraph); + } + + /** + * Adds a hyperlink style to styles.xml + * + * @param $styleName string + * @param $styles array + */ + public function addLinkStyle($styleName, $styles) + { + PHPWord_Style::addLinkStyle($styleName, $styles); + } + + /** + * Get sections + * @return PHPWord_Section[] + */ + public function getSections() + { + return $this->_sectionCollection; + } + + /** + * Get section count + * @return int + */ + private function _countSections() + { + return count($this->_sectionCollection); + } - /** - * Get properties - * @return PHPWord_DocumentProperties - */ - public function getProperties() { - return $this->_properties; - } - - /** - * Set properties - * - * @param PHPWord_DocumentProperties $value - * @return PHPWord - */ - public function setProperties(PHPWord_DocumentProperties $value) { - $this->_properties = $value; - return $this; - } - - /** - * Create a new Section - * - * @param PHPWord_Section_Settings $settings - * @return PHPWord_Section - */ - public function createSection($settings = null) { - $sectionCount = $this->_countSections() + 1; - - $section = new PHPWord_Section($sectionCount, $settings); - $this->_sectionCollection[] = $section; - return $section; - } - - /** - * Get default Font name - * @return string - */ - public function getDefaultFontName() { - return $this->_defaultFontName; - } - - /** - * Set default Font name - * @param string $pValue - */ - public function setDefaultFontName($pValue) { - $this->_defaultFontName = $pValue; - } - - /** - * Get default Font size - * @return string - */ - public function getDefaultFontSize() { - return $this->_defaultFontSize; - } - - /** - * Set default Font size - * @param int $pValue - */ - public function setDefaultFontSize($pValue) { - $pValue = $pValue * 2; - $this->_defaultFontSize = $pValue; - } - - /** - * Adds a paragraph style definition to styles.xml - * - * @param $styleName string - * @param $styles array - */ - public function addParagraphStyle($styleName, $styles) { - PHPWord_Style::addParagraphStyle($styleName, $styles); - } - - /** - * Adds a font style definition to styles.xml - * - * @param $styleName string - * @param $styles array - */ - public function addFontStyle($styleName, $styleFont, $styleParagraph = null) { - PHPWord_Style::addFontStyle($styleName, $styleFont, $styleParagraph); - } - - /** - * Adds a table style definition to styles.xml - * - * @param $styleName string - * @param $styles array - */ - public function addTableStyle($styleName, $styleTable, $styleFirstRow = null) { - PHPWord_Style::addTableStyle($styleName, $styleTable, $styleFirstRow); - } - - /** - * Adds a heading style definition to styles.xml - * - * @param $titleCount int - * @param $styles array - */ - public function addTitleStyle($titleCount, $styleFont, $styleParagraph = null) { - PHPWord_Style::addTitleStyle($titleCount, $styleFont, $styleParagraph); - } - - /** - * Adds a hyperlink style to styles.xml - * - * @param $styleName string - * @param $styles array - */ - public function addLinkStyle($styleName, $styles) { - PHPWord_Style::addLinkStyle($styleName, $styles); - } - - /** - * Get sections - * @return PHPWord_Section[] - */ - public function getSections() { - return $this->_sectionCollection; - } - - /** - * Get section count - * @return int - */ - private function _countSections() { - return count($this->_sectionCollection); - } - /** * Load a Template File - * + * * @param string $strFilename * @return PHPWord_Template */ - public function loadTemplate($strFilename) { - if(file_exists($strFilename)) { + public function loadTemplate($strFilename) + { + if (file_exists($strFilename)) { $template = new PHPWord_Template($strFilename); return $template; } else { - trigger_error('Template file '.$strFilename.' not found.', E_USER_ERROR); + trigger_error('Template file ' . $strFilename . ' not found.', E_USER_ERROR); } } } \ No newline at end of file diff --git a/Classes/PHPWord/Autoloader.php b/Classes/PHPWord/Autoloader.php index c6b53a74..601c2ebf 100755 --- a/Classes/PHPWord/Autoloader.php +++ b/Classes/PHPWord/Autoloader.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/DocumentProperties.php b/Classes/PHPWord/DocumentProperties.php old mode 100644 new mode 100755 index f2a0904d..c96ac0d4 --- a/Classes/PHPWord/DocumentProperties.php +++ b/Classes/PHPWord/DocumentProperties.php @@ -20,14 +20,13 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ - /** - * PHPWord_DocumentProperties + * Class PHPWord_DocumentProperties */ class PHPWord_DocumentProperties { diff --git a/Classes/PHPWord/Exception.php b/Classes/PHPWord/Exception.php old mode 100644 new mode 100755 index 1cf4f050..d1da2099 --- a/Classes/PHPWord/Exception.php +++ b/Classes/PHPWord/Exception.php @@ -20,33 +20,30 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2009 - 2010 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## + * @version 0.7.0 */ - /** - * PHPWord_Exception - * - * @category PHPWord - * @package PHPWord - * @copyright Copyright (c) 2006 - 2013 PHPWord (http://www.codeplex.com/PHPWord) + * Class PHPWord_Exception */ -class PHPWord_Exception extends Exception { - /** - * Error handler callback - * - * @param mixed $code - * @param mixed $string - * @param mixed $file - * @param mixed $line - * @param mixed $context - */ - public static function errorHandlerCallback($code, $string, $file, $line, $context) { - $e = new self($string, $code); - $e->line = $line; - $e->file = $file; - throw $e; - } +class PHPWord_Exception extends Exception +{ + /** + * Error handler callback + * + * @param mixed $code + * @param mixed $string + * @param mixed $file + * @param mixed $line + * @param mixed $context + */ + public static function errorHandlerCallback($code, $string, $file, $line, $context) + { + $e = new self($string, $code); + $e->line = $line; + $e->file = $file; + throw $e; + } } \ No newline at end of file diff --git a/Classes/PHPWord/HashTable.php b/Classes/PHPWord/HashTable.php old mode 100644 new mode 100755 index c32e0abb..cb4f8539 --- a/Classes/PHPWord/HashTable.php +++ b/Classes/PHPWord/HashTable.php @@ -20,12 +20,11 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ - /** * PHPWord_HashTable */ diff --git a/Classes/PHPWord/IOFactory.php b/Classes/PHPWord/IOFactory.php old mode 100644 new mode 100755 index a07a72db..9dd1c1ad --- a/Classes/PHPWord/IOFactory.php +++ b/Classes/PHPWord/IOFactory.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Media.php b/Classes/PHPWord/Media.php old mode 100644 new mode 100755 index 044db8f7..b739d365 --- a/Classes/PHPWord/Media.php +++ b/Classes/PHPWord/Media.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Section.php b/Classes/PHPWord/Section.php old mode 100644 new mode 100755 index d5f5618d..3bb11c1c --- a/Classes/PHPWord/Section.php +++ b/Classes/PHPWord/Section.php @@ -2,7 +2,7 @@ /** * PHPWord * - * Copyright (c) 2011 PHPWord + * Copyright (c) 2013 PHPWord * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,378 +20,393 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 010 PHPWord + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version Beta 0.6.3, 08.07.2011 + * @version 0.7.0 */ - /** - * PHPWord_Section - * - * @category PHPWord - * @package PHPWord_Section - * @copyright Copyright (c) 2011 PHPWord + * Class PHPWord_Section */ -class PHPWord_Section { - - /** - * Section count - * - * @var int - */ - private $_sectionCount; - - /** - * Section settings - * - * @var PHPWord_Section_Settings - */ - private $_settings; - - /** - * Section Element Collection - * - * @var array - */ - private $_elementCollection = array(); - - /** - * Section Headers - * - * @var array - */ - private $_headers = array(); - - /** - * Section Footer - * - * @var PHPWord_Section_Footer - */ - private $_footer = null; - - - /** - * Create a new Section - * - * @param int $sectionCount - * @param mixed $settings - */ - public function __construct($sectionCount, $settings = null) { - $this->_sectionCount = $sectionCount; - $this->_settings = new PHPWord_Section_Settings(); - - if(!is_null($settings) && is_array($settings)) { - foreach($settings as $key => $value) { - if(substr($key, 0, 1) != '_') { - $key = '_'.$key; - } - $this->_settings->setSettingValue($key, $value); - } - } - } - - /** - * Get Section Settings - * - * @return PHPWord_Section_Settings - */ - public function getSettings() { - return $this->_settings; - } - - /** - * Add a Text Element - * - * @param string $text - * @param mixed $styleFont - * @param mixed $styleParagraph - * @return PHPWord_Section_Text - */ - public function addText($text, $styleFont = null, $styleParagraph = null) { - if(!PHPWord_Shared_String::IsUTF8($text)){ - $text = utf8_encode($text); - } - $text = new PHPWord_Section_Text($text, $styleFont, $styleParagraph); - $this->_elementCollection[] = $text; - return $text; - } - - /** - * Add a Link Element - * - * @param string $linkSrc - * @param string $linkName - * @param mixed $styleFont - * @param mixed $styleParagraph - * @return PHPWord_Section_Link - */ - public function addLink($linkSrc, $linkName = null, $styleFont = null, $styleParagraph = null) { - if(!PHPWord_Shared_String::IsUTF8($linkSrc)){ - $linkSrc = utf8_encode($linkSrc); - } - if(!is_null($linkName)) { - if(!PHPWord_Shared_String::IsUTF8($linkName)){ - $linkName = utf8_encode($linkName); - } - } - - $link = new PHPWord_Section_Link($linkSrc, $linkName, $styleFont, $styleParagraph); - $rID = PHPWord_Media::addSectionLinkElement($linkSrc); - $link->setRelationId($rID); - - $this->_elementCollection[] = $link; - return $link; - } - - /** - * Add a TextBreak Element - * - * @param int $count - */ - public function addTextBreak($count = 1) { - for($i=1; $i<=$count; $i++) { - $this->_elementCollection[] = new PHPWord_Section_TextBreak(); - } - } - - /** - * Add a PageBreak Element - */ - public function addPageBreak() { - $this->_elementCollection[] = new PHPWord_Section_PageBreak(); - } - - /** - * Add a Table Element - * - * @param mixed $style - * @return PHPWord_Section_Table - */ - public function addTable($style = null) { - $table = new PHPWord_Section_Table('section', $this->_sectionCount, $style); - $this->_elementCollection[] = $table; - return $table; - } - - /** - * Add a ListItem Element - * - * @param string $text - * @param int $depth - * @param mixed $styleFont - * @param mixed $styleList - * @param mixed $styleParagraph - * @return PHPWord_Section_ListItem - */ - public function addListItem($text, $depth = 0, $styleFont = null, $styleList = null, $styleParagraph = null) { - if(!PHPWord_Shared_String::IsUTF8($text)){ - $text = utf8_encode($text); - } - $listItem = new PHPWord_Section_ListItem($text, $depth, $styleFont, $styleList, $styleParagraph); - $this->_elementCollection[] = $listItem; - return $listItem; - } - - /** - * Add a OLE-Object Element - * - * @param string $src - * @param mixed $style - * @return PHPWord_Section_Object - */ - public function addObject($src, $style = null) { - $object = new PHPWord_Section_Object($src, $style); - - if(!is_null($object->getSource())) { - $inf = pathinfo($src); - $ext = $inf['extension']; - if(strlen($ext) == 4 && strtolower(substr($ext, -1)) == 'x') { - $ext = substr($ext, 0, -1); - } - - $iconSrc = PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/'; - if(!file_exists($iconSrc.'_'.$ext.'.png')) { - $iconSrc = $iconSrc.'_default.png'; - } else { - $iconSrc .= '_'.$ext.'.png'; - } - - $rIDimg = PHPWord_Media::addSectionMediaElement($iconSrc, 'image'); - $data = PHPWord_Media::addSectionMediaElement($src, 'oleObject'); - $rID = $data[0]; - $objectId = $data[1]; - - $object->setRelationId($rID); - $object->setObjectId($objectId); - $object->setImageRelationId($rIDimg); - - $this->_elementCollection[] = $object; - return $object; - } else { - trigger_error('Source does not exist or unsupported object type.'); - } - } - - /** - * Add a Image Element - * - * @param string $src - * @param mixed $style - * @return PHPWord_Section_Image - */ - public function addImage($src, $style = null) { - $image = new PHPWord_Section_Image($src, $style); - - if(!is_null($image->getSource())) { - $rID = PHPWord_Media::addSectionMediaElement($src, 'image'); - $image->setRelationId($rID); - - $this->_elementCollection[] = $image; - return $image; - } else { - trigger_error('Source does not exist or unsupported image type.'); - } - } - - /** - * Add a by PHP created Image Element - * - * @param string $link - * @param mixed $style - * @return PHPWord_Section_MemoryImage - */ - public function addMemoryImage($link, $style = null) { - $memoryImage = new PHPWord_Section_MemoryImage($link, $style); - if(!is_null($memoryImage->getSource())) { - $rID = PHPWord_Media::addSectionMediaElement($link, 'image', $memoryImage); - $memoryImage->setRelationId($rID); - - $this->_elementCollection[] = $memoryImage; - return $memoryImage; - } else { - trigger_error('Unsupported image type.'); - } - } - - /** - * Add a Table-of-Contents Element - * - * @param mixed $styleFont - * @param mixed $styleTOC - * @return PHPWord_TOC - */ - public function addTOC($styleFont = null, $styleTOC = null) { - $toc = new PHPWord_TOC($styleFont, $styleTOC); - $this->_elementCollection[] = $toc; - return $toc; - } - - /** - * Add a Title Element - * - * @param string $text - * @param int $depth - * @return PHPWord_Section_Title - */ - public function addTitle($text, $depth = 1) { - if(!PHPWord_Shared_String::IsUTF8($text)){ - $text = utf8_encode($text); - } - $styles = PHPWord_Style::getStyles(); - if(array_key_exists('Heading_'.$depth, $styles)) { - $style = 'Heading'.$depth; - } else { - $style = null; - } - - $title = new PHPWord_Section_Title($text, $depth, $style); - - $data = PHPWord_TOC::addTitle($text, $depth); - $anchor = $data[0]; - $bookmarkId = $data[1]; - - $title->setAnchor($anchor); - $title->setBookmarkId($bookmarkId); - - $this->_elementCollection[] = $title; - return $title; - } - - /** - * Create a new TextRun - * - * @return PHPWord_Section_TextRun - */ - public function createTextRun($styleParagraph = null) { - $textRun = new PHPWord_Section_TextRun($styleParagraph); - $this->_elementCollection[] = $textRun; - return $textRun; - } - - /** - * Get all Elements - * - * @return array - */ - public function getElements() { - return $this->_elementCollection; - } - - /** - * Create a new Header - * - * @return PHPWord_Section_Header - */ - public function createHeader() { - $header = new PHPWord_Section_Header($this->_sectionCount); - $this->_headers[] = $header; - return $header; - } - - /** - * Get Headers - * - * @return array - */ - public function getHeaders() { - return $this->_headers; - } +class PHPWord_Section +{ - /** - * Is there a header for this section that is for the first page only? - * - * If any of the PHPWord_Section_Header instances have a type of - * PHPWord_Section_Header::FIRST then this method returns true. False - * otherwise. - * - * @return Boolean - */ - public function hasDifferentFirstPage() { - $value = array_filter($this->_headers, function(PHPWord_Section_Header &$header) { - return $header->getType() == PHPWord_Section_Header::FIRST; - }); - return count($value) > 0; - } - - /** - * Create a new Footer - * - * @return PHPWord_Section_Footer - */ - public function createFooter() { - $footer = new PHPWord_Section_Footer($this->_sectionCount); - $this->_footer = $footer; - return $footer; - } - - /** - * Get Footer - * - * @return PHPWord_Section_Footer - */ - public function getFooter() { - return $this->_footer; - } -} -?> \ No newline at end of file + /** + * Section count + * + * @var int + */ + private $_sectionCount; + + /** + * Section settings + * + * @var PHPWord_Section_Settings + */ + private $_settings; + + /** + * Section Element Collection + * + * @var array + */ + private $_elementCollection = array(); + + /** + * Section Headers + * + * @var array + */ + private $_headers = array(); + + /** + * Section Footer + * + * @var PHPWord_Section_Footer + */ + private $_footer = null; + + + /** + * Create a new Section + * + * @param int $sectionCount + * @param mixed $settings + */ + public function __construct($sectionCount, $settings = null) + { + $this->_sectionCount = $sectionCount; + $this->_settings = new PHPWord_Section_Settings(); + + if (!is_null($settings) && is_array($settings)) { + foreach ($settings as $key => $value) { + if (substr($key, 0, 1) != '_') { + $key = '_' . $key; + } + $this->_settings->setSettingValue($key, $value); + } + } + } + + /** + * Get Section Settings + * + * @return PHPWord_Section_Settings + */ + public function getSettings() + { + return $this->_settings; + } + + /** + * Add a Text Element + * + * @param string $text + * @param mixed $styleFont + * @param mixed $styleParagraph + * @return PHPWord_Section_Text + */ + public function addText($text, $styleFont = null, $styleParagraph = null) + { + if (!PHPWord_Shared_String::IsUTF8($text)) { + $text = utf8_encode($text); + } + $text = new PHPWord_Section_Text($text, $styleFont, $styleParagraph); + $this->_elementCollection[] = $text; + return $text; + } + + /** + * Add a Link Element + * + * @param string $linkSrc + * @param string $linkName + * @param mixed $styleFont + * @param mixed $styleParagraph + * @return PHPWord_Section_Link + */ + public function addLink($linkSrc, $linkName = null, $styleFont = null, $styleParagraph = null) + { + if (!PHPWord_Shared_String::IsUTF8($linkSrc)) { + $linkSrc = utf8_encode($linkSrc); + } + if (!is_null($linkName)) { + if (!PHPWord_Shared_String::IsUTF8($linkName)) { + $linkName = utf8_encode($linkName); + } + } + + $link = new PHPWord_Section_Link($linkSrc, $linkName, $styleFont, $styleParagraph); + $rID = PHPWord_Media::addSectionLinkElement($linkSrc); + $link->setRelationId($rID); + + $this->_elementCollection[] = $link; + return $link; + } + + /** + * Add a TextBreak Element + * + * @param int $count + */ + public function addTextBreak($count = 1) + { + for ($i = 1; $i <= $count; $i++) { + $this->_elementCollection[] = new PHPWord_Section_TextBreak(); + } + } + + /** + * Add a PageBreak Element + */ + public function addPageBreak() + { + $this->_elementCollection[] = new PHPWord_Section_PageBreak(); + } + + /** + * Add a Table Element + * + * @param mixed $style + * @return PHPWord_Section_Table + */ + public function addTable($style = null) + { + $table = new PHPWord_Section_Table('section', $this->_sectionCount, $style); + $this->_elementCollection[] = $table; + return $table; + } + + /** + * Add a ListItem Element + * + * @param string $text + * @param int $depth + * @param mixed $styleFont + * @param mixed $styleList + * @param mixed $styleParagraph + * @return PHPWord_Section_ListItem + */ + public function addListItem($text, $depth = 0, $styleFont = null, $styleList = null, $styleParagraph = null) + { + if (!PHPWord_Shared_String::IsUTF8($text)) { + $text = utf8_encode($text); + } + $listItem = new PHPWord_Section_ListItem($text, $depth, $styleFont, $styleList, $styleParagraph); + $this->_elementCollection[] = $listItem; + return $listItem; + } + + /** + * Add a OLE-Object Element + * + * @param string $src + * @param mixed $style + * @return PHPWord_Section_Object + */ + public function addObject($src, $style = null) + { + $object = new PHPWord_Section_Object($src, $style); + + if (!is_null($object->getSource())) { + $inf = pathinfo($src); + $ext = $inf['extension']; + if (strlen($ext) == 4 && strtolower(substr($ext, -1)) == 'x') { + $ext = substr($ext, 0, -1); + } + + $iconSrc = PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/'; + if (!file_exists($iconSrc . '_' . $ext . '.png')) { + $iconSrc = $iconSrc . '_default.png'; + } else { + $iconSrc .= '_' . $ext . '.png'; + } + + $rIDimg = PHPWord_Media::addSectionMediaElement($iconSrc, 'image'); + $data = PHPWord_Media::addSectionMediaElement($src, 'oleObject'); + $rID = $data[0]; + $objectId = $data[1]; + + $object->setRelationId($rID); + $object->setObjectId($objectId); + $object->setImageRelationId($rIDimg); + + $this->_elementCollection[] = $object; + return $object; + } else { + trigger_error('Source does not exist or unsupported object type.'); + } + } + + /** + * Add a Image Element + * + * @param string $src + * @param mixed $style + * @return PHPWord_Section_Image + */ + public function addImage($src, $style = null) + { + $image = new PHPWord_Section_Image($src, $style); + + if (!is_null($image->getSource())) { + $rID = PHPWord_Media::addSectionMediaElement($src, 'image'); + $image->setRelationId($rID); + + $this->_elementCollection[] = $image; + return $image; + } else { + trigger_error('Source does not exist or unsupported image type.'); + } + } + + /** + * Add a by PHP created Image Element + * + * @param string $link + * @param mixed $style + * @return PHPWord_Section_MemoryImage + */ + public function addMemoryImage($link, $style = null) + { + $memoryImage = new PHPWord_Section_MemoryImage($link, $style); + if (!is_null($memoryImage->getSource())) { + $rID = PHPWord_Media::addSectionMediaElement($link, 'image', $memoryImage); + $memoryImage->setRelationId($rID); + + $this->_elementCollection[] = $memoryImage; + return $memoryImage; + } else { + trigger_error('Unsupported image type.'); + } + } + + /** + * Add a Table-of-Contents Element + * + * @param mixed $styleFont + * @param mixed $styleTOC + * @return PHPWord_TOC + */ + public function addTOC($styleFont = null, $styleTOC = null) + { + $toc = new PHPWord_TOC($styleFont, $styleTOC); + $this->_elementCollection[] = $toc; + return $toc; + } + + /** + * Add a Title Element + * + * @param string $text + * @param int $depth + * @return PHPWord_Section_Title + */ + public function addTitle($text, $depth = 1) + { + if (!PHPWord_Shared_String::IsUTF8($text)) { + $text = utf8_encode($text); + } + $styles = PHPWord_Style::getStyles(); + if (array_key_exists('Heading_' . $depth, $styles)) { + $style = 'Heading' . $depth; + } else { + $style = null; + } + + $title = new PHPWord_Section_Title($text, $depth, $style); + + $data = PHPWord_TOC::addTitle($text, $depth); + $anchor = $data[0]; + $bookmarkId = $data[1]; + + $title->setAnchor($anchor); + $title->setBookmarkId($bookmarkId); + + $this->_elementCollection[] = $title; + return $title; + } + + /** + * Create a new TextRun + * + * @return PHPWord_Section_TextRun + */ + public function createTextRun($styleParagraph = null) + { + $textRun = new PHPWord_Section_TextRun($styleParagraph); + $this->_elementCollection[] = $textRun; + return $textRun; + } + + /** + * Get all Elements + * + * @return array + */ + public function getElements() + { + return $this->_elementCollection; + } + + /** + * Create a new Header + * + * @return PHPWord_Section_Header + */ + public function createHeader() + { + $header = new PHPWord_Section_Header($this->_sectionCount); + $this->_headers[] = $header; + return $header; + } + + /** + * Get Headers + * + * @return array + */ + public function getHeaders() + { + return $this->_headers; + } + + /** + * Is there a header for this section that is for the first page only? + * + * If any of the PHPWord_Section_Header instances have a type of + * PHPWord_Section_Header::FIRST then this method returns true. False + * otherwise. + * + * @return Boolean + */ + public function hasDifferentFirstPage() + { + $value = array_filter($this->_headers, function (PHPWord_Section_Header &$header) { + return $header->getType() == PHPWord_Section_Header::FIRST; + }); + return count($value) > 0; + } + + /** + * Create a new Footer + * + * @return PHPWord_Section_Footer + */ + public function createFooter() + { + $footer = new PHPWord_Section_Footer($this->_sectionCount); + $this->_footer = $footer; + return $footer; + } + + /** + * Get Footer + * + * @return PHPWord_Section_Footer + */ + public function getFooter() + { + return $this->_footer; + } +} \ No newline at end of file diff --git a/Classes/PHPWord/Section/Footer.php b/Classes/PHPWord/Section/Footer.php old mode 100644 new mode 100755 index e54d1ea5..a5de1891 --- a/Classes/PHPWord/Section/Footer.php +++ b/Classes/PHPWord/Section/Footer.php @@ -2,7 +2,7 @@ /** * PHPWord * - * Copyright (c) 2011 PHPWord + * Copyright (c) 2013 PHPWord * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,186 +20,193 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 010 PHPWord + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version Beta 0.6.3, 08.07.2011 + * @version 0.7.0 */ - /** * PHPWord_Section_Footer - * - * @category PHPWord - * @package PHPWord_Section - * @copyright Copyright (c) 2011 PHPWord */ -class PHPWord_Section_Footer { - - /** - * Footer Count - * - * @var int - */ - private $_footerCount; - - /** - * Footer Relation ID - * - * @var int - */ - private $_rId; - - /** - * Footer Element Collection - * - * @var int - */ - private $_elementCollection = array(); - - /** - * Create a new Footer - */ - public function __construct($sectionCount) { - $this->_footerCount = $sectionCount; - } - - /** - * Add a Text Element - * - * @param string $text - * @param mixed $styleFont - * @param mixed $styleParagraph - * @return PHPWord_Section_Text - */ - public function addText($text, $styleFont = null, $styleParagraph = null) { - if(!PHPWord_Shared_String::IsUTF8($text)){ - $text = utf8_encode($text); +class PHPWord_Section_Footer +{ + + /** + * Footer Count + * + * @var int + */ + private $_footerCount; + + /** + * Footer Relation ID + * + * @var int + */ + private $_rId; + + /** + * Footer Element Collection + * + * @var int + */ + private $_elementCollection = array(); + + /** + * Create a new Footer + */ + public function __construct($sectionCount) + { + $this->_footerCount = $sectionCount; } - $text = new PHPWord_Section_Text($text, $styleFont, $styleParagraph); - $this->_elementCollection[] = $text; - return $text; - } - - /** - * Add a TextBreak Element - * - * @param int $count - */ - public function addTextBreak($count = 1) { - for($i=1; $i<=$count; $i++) { - $this->_elementCollection[] = new PHPWord_Section_TextBreak(); - } - } - - /** - * Create a new TextRun - * - * @return PHPWord_Section_TextRun - */ - public function createTextRun($styleParagraph = null) { - $textRun = new PHPWord_Section_TextRun($styleParagraph); - $this->_elementCollection[] = $textRun; - return $textRun; - } - - /** - * Add a Table Element - * - * @param mixed $style - * @return PHPWord_Section_Table - */ - public function addTable($style = null) { - $table = new PHPWord_Section_Table('footer', $this->_footerCount, $style); - $this->_elementCollection[] = $table; - return $table; - } - - /** - * Add a Image Element - * - * @param string $src - * @param mixed $style - * @return PHPWord_Section_Image - */ - public function addImage($src, $style = null) { - $image = new PHPWord_Section_Image($src, $style); - - if(!is_null($image->getSource())) { - $rID = PHPWord_Media::addFooterMediaElement($this->_footerCount, $src); - $image->setRelationId($rID); - - $this->_elementCollection[] = $image; - return $image; - } else { - trigger_error('Src does not exist or invalid image type.', E_USER_ERROR); - } - } - - /** - * Add a by PHP created Image Element - * - * @param string $link - * @param mixed $style - * @return PHPWord_Section_MemoryImage - */ - public function addMemoryImage($link, $style = null) { - $memoryImage = new PHPWord_Section_MemoryImage($link, $style); - if(!is_null($memoryImage->getSource())) { - $rID = PHPWord_Media::addFooterMediaElement($this->_footerCount, $link, $memoryImage); - $memoryImage->setRelationId($rID); - - $this->_elementCollection[] = $memoryImage; - return $memoryImage; - } else { - trigger_error('Unsupported image type.'); - } - } - - /** - * Add a PreserveText Element - * - * @param string $text - * @param mixed $styleFont - * @param mixed $styleParagraph - * @return PHPWord_Section_Footer_PreserveText - */ - public function addPreserveText($text, $styleFont = null, $styleParagraph = null) { - if(!PHPWord_Shared_String::IsUTF8($text)){ - $text = utf8_encode($text); + + /** + * Add a Text Element + * + * @param string $text + * @param mixed $styleFont + * @param mixed $styleParagraph + * @return PHPWord_Section_Text + */ + public function addText($text, $styleFont = null, $styleParagraph = null) + { + if (!PHPWord_Shared_String::IsUTF8($text)) { + $text = utf8_encode($text); + } + $text = new PHPWord_Section_Text($text, $styleFont, $styleParagraph); + $this->_elementCollection[] = $text; + return $text; } - $ptext = new PHPWord_Section_Footer_PreserveText($text, $styleFont, $styleParagraph); - $this->_elementCollection[] = $ptext; - return $ptext; - } - - /** - * Get Footer Relation ID - */ - public function getRelationId() { - return $this->_rId; - } - - /** - * Set Footer Relation ID - * - * @param int $rId - */ - public function setRelationId($rId) { - $this->_rId = $rId; - } - - /** - * Get all Footer Elements - */ - public function getElements() { - return $this->_elementCollection; - } - - /** - * Get Footer Count - */ - public function getFooterCount() { - return $this->_footerCount; - } -} -?> \ No newline at end of file + + /** + * Add a TextBreak Element + * + * @param int $count + */ + public function addTextBreak($count = 1) + { + for ($i = 1; $i <= $count; $i++) { + $this->_elementCollection[] = new PHPWord_Section_TextBreak(); + } + } + + /** + * Create a new TextRun + * + * @return PHPWord_Section_TextRun + */ + public function createTextRun($styleParagraph = null) + { + $textRun = new PHPWord_Section_TextRun($styleParagraph); + $this->_elementCollection[] = $textRun; + return $textRun; + } + + /** + * Add a Table Element + * + * @param mixed $style + * @return PHPWord_Section_Table + */ + public function addTable($style = null) + { + $table = new PHPWord_Section_Table('footer', $this->_footerCount, $style); + $this->_elementCollection[] = $table; + return $table; + } + + /** + * Add a Image Element + * + * @param string $src + * @param mixed $style + * @return PHPWord_Section_Image + */ + public function addImage($src, $style = null) + { + $image = new PHPWord_Section_Image($src, $style); + + if (!is_null($image->getSource())) { + $rID = PHPWord_Media::addFooterMediaElement($this->_footerCount, $src); + $image->setRelationId($rID); + + $this->_elementCollection[] = $image; + return $image; + } else { + trigger_error('Src does not exist or invalid image type.', E_USER_ERROR); + } + } + + /** + * Add a by PHP created Image Element + * + * @param string $link + * @param mixed $style + * @return PHPWord_Section_MemoryImage + */ + public function addMemoryImage($link, $style = null) + { + $memoryImage = new PHPWord_Section_MemoryImage($link, $style); + if (!is_null($memoryImage->getSource())) { + $rID = PHPWord_Media::addFooterMediaElement($this->_footerCount, $link, $memoryImage); + $memoryImage->setRelationId($rID); + + $this->_elementCollection[] = $memoryImage; + return $memoryImage; + } else { + trigger_error('Unsupported image type.'); + } + } + + /** + * Add a PreserveText Element + * + * @param string $text + * @param mixed $styleFont + * @param mixed $styleParagraph + * @return PHPWord_Section_Footer_PreserveText + */ + public function addPreserveText($text, $styleFont = null, $styleParagraph = null) + { + if (!PHPWord_Shared_String::IsUTF8($text)) { + $text = utf8_encode($text); + } + $ptext = new PHPWord_Section_Footer_PreserveText($text, $styleFont, $styleParagraph); + $this->_elementCollection[] = $ptext; + return $ptext; + } + + /** + * Get Footer Relation ID + */ + public function getRelationId() + { + return $this->_rId; + } + + /** + * Set Footer Relation ID + * + * @param int $rId + */ + public function setRelationId($rId) + { + $this->_rId = $rId; + } + + /** + * Get all Footer Elements + */ + public function getElements() + { + return $this->_elementCollection; + } + + /** + * Get Footer Count + */ + public function getFooterCount() + { + return $this->_footerCount; + } +} \ No newline at end of file diff --git a/Classes/PHPWord/Section/Footer/PreserveText.php b/Classes/PHPWord/Section/Footer/PreserveText.php old mode 100644 new mode 100755 index 7d08712f..a38b1dcc --- a/Classes/PHPWord/Section/Footer/PreserveText.php +++ b/Classes/PHPWord/Section/Footer/PreserveText.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Section/Header.php b/Classes/PHPWord/Section/Header.php old mode 100644 new mode 100755 index 65ad3971..483f887e --- a/Classes/PHPWord/Section/Header.php +++ b/Classes/PHPWord/Section/Header.php @@ -2,7 +2,7 @@ /** * PHPWord * - * Copyright (c) 2011 PHPWord + * Copyright (c) 2013 PHPWord * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,265 +20,277 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 010 PHPWord + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version Beta 0.6.3, 08.07.2011 + * @version 0.7.0 */ - /** * PHPWord_Section_Header - * - * @category PHPWord - * @package PHPWord_Section - * @copyright Copyright (c) 2011 PHPWord */ -class PHPWord_Section_Header { - - /** - * Header Count - * - * @var int - */ - private $_headerCount; - - /** - * Header Relation ID - * - * @var int - */ - private $_rId; +class PHPWord_Section_Header +{ - /** - * Header type - * - * @var string - * @link http://www.schemacentral.com/sc/ooxml/a-w_type-4.html Header or Footer Type - */ - private $_type = PHPWord_Section_Header::AUTO; + /** + * Header Count + * + * @var int + */ + private $_headerCount; - /** - * Even Numbered Pages Only - * @var string - * @link http://www.schemacentral.com/sc/ooxml/a-w_type-4.html Header or Footer Type - */ - const EVEN = 'even'; + /** + * Header Relation ID + * + * @var int + */ + private $_rId; - /** - * Default Header or Footer - * @var string - * @link http://www.schemacentral.com/sc/ooxml/a-w_type-4.html Header or Footer Type - */ - const AUTO = 'default'; // Did not use DEFAULT because it is a PHP keyword + /** + * Header type + * + * @var string + * @link http://www.schemacentral.com/sc/ooxml/a-w_type-4.html Header or Footer Type + */ + private $_type = PHPWord_Section_Header::AUTO; - /** - * First Page Only - * @var string - * @link http://www.schemacentral.com/sc/ooxml/a-w_type-4.html Header or Footer Type - */ - const FIRST = 'first'; - - /** - * Header Element Collection - * - * @var int - */ - private $_elementCollection = array(); - - /** - * Create a new Header - */ - public function __construct($sectionCount) { - $this->_headerCount = $sectionCount; - } - - /** - * Add a Text Element - * - * @param string $text - * @param mixed $styleFont - * @param mixed $styleParagraph - * @return PHPWord_Section_Text - */ - public function addText($text, $styleFont = null, $styleParagraph = null) { - if(!PHPWord_Shared_String::IsUTF8($text)){ - $text = utf8_encode($text); + /** + * Even Numbered Pages Only + * @var string + * @link http://www.schemacentral.com/sc/ooxml/a-w_type-4.html Header or Footer Type + */ + const EVEN = 'even'; + + /** + * Default Header or Footer + * @var string + * @link http://www.schemacentral.com/sc/ooxml/a-w_type-4.html Header or Footer Type + */ + const AUTO = 'default'; // Did not use DEFAULT because it is a PHP keyword + + /** + * First Page Only + * @var string + * @link http://www.schemacentral.com/sc/ooxml/a-w_type-4.html Header or Footer Type + */ + const FIRST = 'first'; + + /** + * Header Element Collection + * + * @var int + */ + private $_elementCollection = array(); + + /** + * Create a new Header + */ + public function __construct($sectionCount) + { + $this->_headerCount = $sectionCount; } - $text = new PHPWord_Section_Text($text, $styleFont, $styleParagraph); - $this->_elementCollection[] = $text; - return $text; - } - - /** - * Add a TextBreak Element - * - * @param int $count - */ - public function addTextBreak($count = 1) { - for($i=1; $i<=$count; $i++) { - $this->_elementCollection[] = new PHPWord_Section_TextBreak(); - } - } - - /** - * Create a new TextRun - * - * @return PHPWord_Section_TextRun - */ - public function createTextRun($styleParagraph = null) { - $textRun = new PHPWord_Section_TextRun($styleParagraph); - $this->_elementCollection[] = $textRun; - return $textRun; - } - - /** - * Add a Table Element - * - * @param mixed $style - * @return PHPWord_Section_Table - */ - public function addTable($style = null) { - $table = new PHPWord_Section_Table('header', $this->_headerCount, $style); - $this->_elementCollection[] = $table; - return $table; - } - - /** - * Add a Image Element - * - * @param string $src - * @param mixed $style - * @return PHPWord_Section_Image - */ - public function addImage($src, $style = null) { - $image = new PHPWord_Section_Image($src, $style); - - if(!is_null($image->getSource())) { - $rID = PHPWord_Media::addHeaderMediaElement($this->_headerCount, $src); - $image->setRelationId($rID); - - $this->_elementCollection[] = $image; - return $image; - } else { - trigger_error('Src does not exist or invalid image type.', E_USER_ERROR); - } - } - - /** - * Add a by PHP created Image Element - * - * @param string $link - * @param mixed $style - * @return PHPWord_Section_MemoryImage - */ - public function addMemoryImage($link, $style = null) { - $memoryImage = new PHPWord_Section_MemoryImage($link, $style); - if(!is_null($memoryImage->getSource())) { - $rID = PHPWord_Media::addHeaderMediaElement($this->_headerCount, $link, $memoryImage); - $memoryImage->setRelationId($rID); - - $this->_elementCollection[] = $memoryImage; - return $memoryImage; - } else { - trigger_error('Unsupported image type.'); - } - } - - /** - * Add a PreserveText Element - * - * @param string $text - * @param mixed $styleFont - * @param mixed $styleParagraph - * @return PHPWord_Section_Footer_PreserveText - */ - public function addPreserveText($text, $styleFont = null, $styleParagraph = null) { - if(!PHPWord_Shared_String::IsUTF8($text)){ - $text = utf8_encode($text); + + /** + * Add a Text Element + * + * @param string $text + * @param mixed $styleFont + * @param mixed $styleParagraph + * @return PHPWord_Section_Text + */ + public function addText($text, $styleFont = null, $styleParagraph = null) + { + if (!PHPWord_Shared_String::IsUTF8($text)) { + $text = utf8_encode($text); + } + $text = new PHPWord_Section_Text($text, $styleFont, $styleParagraph); + $this->_elementCollection[] = $text; + return $text; } - $ptext = new PHPWord_Section_Footer_PreserveText($text, $styleFont, $styleParagraph); - $this->_elementCollection[] = $ptext; - return $ptext; - } - - /** - * Add a Watermark Element - * - * @param string $src - * @param mixed $style - * @return PHPWord_Section_Image - */ - public function addWatermark($src, $style = null) { - $image = new PHPWord_Section_Image($src, $style, true); - - if(!is_null($image->getSource())) { - $rID = PHPWord_Media::addHeaderMediaElement($this->_headerCount, $src); - $image->setRelationId($rID); - - $this->_elementCollection[] = $image; - return $image; - } else { - trigger_error('Src does not exist or invalid image type.', E_USER_ERROR); - } - } - - /** - * Get Header Relation ID - */ - public function getRelationId() { - return $this->_rId; - } - - /** - * Set Header Relation ID - * - * @param int $rId - */ - public function setRelationId($rId) { - $this->_rId = $rId; - } - - /** - * Get all Header Elements - */ - public function getElements() { - return $this->_elementCollection; - } - - /** - * Get Header Count - */ - public function getHeaderCount() { - return $this->_headerCount; - } - /** - * Get Header Type - */ - public function getType() { - return $this->_type; - } + /** + * Add a TextBreak Element + * + * @param int $count + */ + public function addTextBreak($count = 1) + { + for ($i = 1; $i <= $count; $i++) { + $this->_elementCollection[] = new PHPWord_Section_TextBreak(); + } + } - /** - * Reset back to default - */ - public function resetType() { - return $this->_type = PHPWord_Section_Header::AUTO; - } + /** + * Create a new TextRun + * + * @return PHPWord_Section_TextRun + */ + public function createTextRun($styleParagraph = null) + { + $textRun = new PHPWord_Section_TextRun($styleParagraph); + $this->_elementCollection[] = $textRun; + return $textRun; + } - /** - * First page only header - */ - public function firstPage() { - return $this->_type = PHPWord_Section_Header::FIRST; - } + /** + * Add a Table Element + * + * @param mixed $style + * @return PHPWord_Section_Table + */ + public function addTable($style = null) + { + $table = new PHPWord_Section_Table('header', $this->_headerCount, $style); + $this->_elementCollection[] = $table; + return $table; + } - /** - * Even numbered Pages only - */ - public function evenPage() { - return $this->_type = PHPWord_Section_Header::EVEN; - } + /** + * Add a Image Element + * + * @param string $src + * @param mixed $style + * @return PHPWord_Section_Image + */ + public function addImage($src, $style = null) + { + $image = new PHPWord_Section_Image($src, $style); -} -?> + if (!is_null($image->getSource())) { + $rID = PHPWord_Media::addHeaderMediaElement($this->_headerCount, $src); + $image->setRelationId($rID); + + $this->_elementCollection[] = $image; + return $image; + } else { + trigger_error('Src does not exist or invalid image type.', E_USER_ERROR); + } + } + + /** + * Add a by PHP created Image Element + * + * @param string $link + * @param mixed $style + * @return PHPWord_Section_MemoryImage + */ + public function addMemoryImage($link, $style = null) + { + $memoryImage = new PHPWord_Section_MemoryImage($link, $style); + if (!is_null($memoryImage->getSource())) { + $rID = PHPWord_Media::addHeaderMediaElement($this->_headerCount, $link, $memoryImage); + $memoryImage->setRelationId($rID); + + $this->_elementCollection[] = $memoryImage; + return $memoryImage; + } else { + trigger_error('Unsupported image type.'); + } + } + + /** + * Add a PreserveText Element + * + * @param string $text + * @param mixed $styleFont + * @param mixed $styleParagraph + * @return PHPWord_Section_Footer_PreserveText + */ + public function addPreserveText($text, $styleFont = null, $styleParagraph = null) + { + if (!PHPWord_Shared_String::IsUTF8($text)) { + $text = utf8_encode($text); + } + $ptext = new PHPWord_Section_Footer_PreserveText($text, $styleFont, $styleParagraph); + $this->_elementCollection[] = $ptext; + return $ptext; + } + + /** + * Add a Watermark Element + * + * @param string $src + * @param mixed $style + * @return PHPWord_Section_Image + */ + public function addWatermark($src, $style = null) + { + $image = new PHPWord_Section_Image($src, $style, true); + + if (!is_null($image->getSource())) { + $rID = PHPWord_Media::addHeaderMediaElement($this->_headerCount, $src); + $image->setRelationId($rID); + + $this->_elementCollection[] = $image; + return $image; + } else { + trigger_error('Src does not exist or invalid image type.', E_USER_ERROR); + } + } + + /** + * Get Header Relation ID + */ + public function getRelationId() + { + return $this->_rId; + } + + /** + * Set Header Relation ID + * + * @param int $rId + */ + public function setRelationId($rId) + { + $this->_rId = $rId; + } + + /** + * Get all Header Elements + */ + public function getElements() + { + return $this->_elementCollection; + } + + /** + * Get Header Count + */ + public function getHeaderCount() + { + return $this->_headerCount; + } + + /** + * Get Header Type + */ + public function getType() + { + return $this->_type; + } + + /** + * Reset back to default + */ + public function resetType() + { + return $this->_type = PHPWord_Section_Header::AUTO; + } + + /** + * First page only header + */ + public function firstPage() + { + return $this->_type = PHPWord_Section_Header::FIRST; + } + + /** + * Even numbered Pages only + */ + public function evenPage() + { + return $this->_type = PHPWord_Section_Header::EVEN; + } + +} \ No newline at end of file diff --git a/Classes/PHPWord/Section/Image.php b/Classes/PHPWord/Section/Image.php old mode 100644 new mode 100755 index e994fb95..4dbf8808 --- a/Classes/PHPWord/Section/Image.php +++ b/Classes/PHPWord/Section/Image.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Section/Link.php b/Classes/PHPWord/Section/Link.php old mode 100644 new mode 100755 index 551eb4f2..d3396c7d --- a/Classes/PHPWord/Section/Link.php +++ b/Classes/PHPWord/Section/Link.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Section/ListItem.php b/Classes/PHPWord/Section/ListItem.php old mode 100644 new mode 100755 index e6a1ac76..f70f8396 --- a/Classes/PHPWord/Section/ListItem.php +++ b/Classes/PHPWord/Section/ListItem.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Section/MemoryImage.php b/Classes/PHPWord/Section/MemoryImage.php old mode 100644 new mode 100755 index f1a027e2..d4e8b6ff --- a/Classes/PHPWord/Section/MemoryImage.php +++ b/Classes/PHPWord/Section/MemoryImage.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Section/Object.php b/Classes/PHPWord/Section/Object.php old mode 100644 new mode 100755 index 40aa272c..30d253dc --- a/Classes/PHPWord/Section/Object.php +++ b/Classes/PHPWord/Section/Object.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Section/PageBreak.php b/Classes/PHPWord/Section/PageBreak.php old mode 100644 new mode 100755 index bdaf58ea..d72c2318 --- a/Classes/PHPWord/Section/PageBreak.php +++ b/Classes/PHPWord/Section/PageBreak.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Section/Settings.php b/Classes/PHPWord/Section/Settings.php old mode 100644 new mode 100755 index fa30c367..e168821c --- a/Classes/PHPWord/Section/Settings.php +++ b/Classes/PHPWord/Section/Settings.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Section/Table.php b/Classes/PHPWord/Section/Table.php old mode 100644 new mode 100755 index 3c9cbfb7..5f3e1ea5 --- a/Classes/PHPWord/Section/Table.php +++ b/Classes/PHPWord/Section/Table.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Section/Table/Cell.php b/Classes/PHPWord/Section/Table/Cell.php old mode 100644 new mode 100755 index 989042fe..cf6f1dc8 --- a/Classes/PHPWord/Section/Table/Cell.php +++ b/Classes/PHPWord/Section/Table/Cell.php @@ -2,7 +2,7 @@ /** * PHPWord * - * Copyright (c) 2011 PHPWord + * Copyright (c) 2013 PHPWord * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,310 +20,318 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 010 PHPWord + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version Beta 0.6.3, 08.07.2011 + * @version 0.7.0 */ - /** * PHPWord_Section_Table_Cell - * - * @category PHPWord - * @package PHPWord_Section_Table - * @copyright Copyright (c) 2011 PHPWord */ -class PHPWord_Section_Table_Cell { - - /** - * Cell Width - * - * @var int - */ - private $_width = null; - - /** - * Cell Style - * - * @var PHPWord_Style_Cell - */ - private $_style; - - /** - * Cell Element Collection - * - * @var array - */ - private $_elementCollection = array(); - - /** - * Table holder - * - * @var string - */ - private $_insideOf; - - /** - * Section/Header/Footer count - * - * @var int - */ - private $_pCount; - - - /** - * Create a new Table Cell - * - * @param string $insideOf - * @param int $pCount - * @param int $width - * @param mixed $style - */ - public function __construct($insideOf, $pCount, $width = null, $style = null) { - $this->_insideOf = $insideOf; - $this->_pCount = $pCount; - $this->_width = $width; - - if(!is_null($style)) { - if(is_array($style)) { - $this->_style = new PHPWord_Style_Cell(); - - foreach($style as $key => $value) { - if(substr($key, 0, 1) != '_') { - $key = '_'.$key; - } - $this->_style->setStyleValue($key, $value); - } - } else { - $this->_style = $style; - } - } - } - - /** - * Add a Text Element - * - * @param string $text - * @param mixed $style - * @return PHPWord_Section_Text - */ - public function addText($text, $styleFont = null, $styleParagraph = null) { - if(!PHPWord_Shared_String::IsUTF8($text)){ - $text = utf8_encode($text); - } - $text = new PHPWord_Section_Text($text, $styleFont, $styleParagraph); - $this->_elementCollection[] = $text; - return $text; - } - - /** - * Add a Link Element - * - * @param string $linkSrc - * @param string $linkName - * @param mixed $style - * @return PHPWord_Section_Link - */ - public function addLink($linkSrc, $linkName = null, $style = null) { - if($this->_insideOf == 'section') { - if(!PHPWord_Shared_String::IsUTF8($linkSrc)){ - $linkSrc = utf8_encode($linkSrc); - } - if(!is_null($linkName)) { - if(!PHPWord_Shared_String::IsUTF8($linkName)){ - $linkName = utf8_encode($linkName); +class PHPWord_Section_Table_Cell +{ + + /** + * Cell Width + * + * @var int + */ + private $_width = null; + + /** + * Cell Style + * + * @var PHPWord_Style_Cell + */ + private $_style; + + /** + * Cell Element Collection + * + * @var array + */ + private $_elementCollection = array(); + + /** + * Table holder + * + * @var string + */ + private $_insideOf; + + /** + * Section/Header/Footer count + * + * @var int + */ + private $_pCount; + + + /** + * Create a new Table Cell + * + * @param string $insideOf + * @param int $pCount + * @param int $width + * @param mixed $style + */ + public function __construct($insideOf, $pCount, $width = null, $style = null) + { + $this->_insideOf = $insideOf; + $this->_pCount = $pCount; + $this->_width = $width; + + if (!is_null($style)) { + if (is_array($style)) { + $this->_style = new PHPWord_Style_Cell(); + + foreach ($style as $key => $value) { + if (substr($key, 0, 1) != '_') { + $key = '_' . $key; + } + $this->_style->setStyleValue($key, $value); + } + } else { + $this->_style = $style; + } } - } - - $link = new PHPWord_Section_Link($linkSrc, $linkName, $style); - $rID = PHPWord_Media::addSectionLinkElement($linkSrc); - $link->setRelationId($rID); - - $this->_elementCollection[] = $link; - return $link; - } else { - trigger_error('Unsupported Link header / footer reference'); - return false; - } - } - - /** - * Add a TextBreak Element - * - * @param int $count - */ - public function addTextBreak() { - $this->_elementCollection[] = new PHPWord_Section_TextBreak(); - } - - /** - * Add a ListItem Element - * - * @param string $text - * @param int $depth - * @param mixed $styleText - * @param mixed $styleList - * @return PHPWord_Section_ListItem - */ - public function addListItem($text, $depth = 0, $styleText = null, $styleList = null) { - if(!PHPWord_Shared_String::IsUTF8($text)){ - $text = utf8_encode($text); } - $listItem = new PHPWord_Section_ListItem($text, $depth, $styleText, $styleList); - $this->_elementCollection[] = $listItem; - return $listItem; - } - - /** - * Add a Image Element - * - * @param string $src - * @param mixed $style - * @return PHPWord_Section_Image - */ - public function addImage($src, $style = null) { - $image = new PHPWord_Section_Image($src, $style); - - if(!is_null($image->getSource())) { - if($this->_insideOf == 'section') { - $rID = PHPWord_Media::addSectionMediaElement($src, 'image'); - } elseif($this->_insideOf == 'header') { - $rID = PHPWord_Media::addHeaderMediaElement($this->_pCount, $src); - } elseif($this->_insideOf == 'footer') { - $rID = PHPWord_Media::addFooterMediaElement($this->_pCount, $src); - } - $image->setRelationId($rID); - - $this->_elementCollection[] = $image; - return $image; - } else { - trigger_error('Source does not exist or unsupported image type.'); - } - } - - /** - * Add a by PHP created Image Element - * - * @param string $link - * @param mixed $style - * @return PHPWord_Section_MemoryImage - */ - public function addMemoryImage($link, $style = null) { - $memoryImage = new PHPWord_Section_MemoryImage($link, $style); - if(!is_null($memoryImage->getSource())) { - if($this->_insideOf == 'section') { - $rID = PHPWord_Media::addSectionMediaElement($link, 'image', $memoryImage); - } elseif($this->_insideOf == 'header') { - $rID = PHPWord_Media::addHeaderMediaElement($this->_pCount, $link, $memoryImage); - } elseif($this->_insideOf == 'footer') { - $rID = PHPWord_Media::addFooterMediaElement($this->_pCount, $link, $memoryImage); - } - $memoryImage->setRelationId($rID); - - $this->_elementCollection[] = $memoryImage; - return $memoryImage; - } else { - trigger_error('Unsupported image type.'); - } - } - - /** - * Add a OLE-Object Element - * - * @param string $src - * @param mixed $style - * @return PHPWord_Section_Object - */ - public function addObject($src, $style = null) { - $object = new PHPWord_Section_Object($src, $style); - - if(!is_null($object->getSource())) { - $inf = pathinfo($src); - $ext = $inf['extension']; - if(strlen($ext) == 4 && strtolower(substr($ext, -1)) == 'x') { - $ext = substr($ext, 0, -1); - } - - $iconSrc = PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/'; - if(!file_exists($iconSrc.'_'.$ext.'.png')) { - $iconSrc = $iconSrc.'_default.png'; - } else { - $iconSrc .= '_'.$ext.'.png'; - } - - $rIDimg = PHPWord_Media::addSectionMediaElement($iconSrc, 'image'); - $data = PHPWord_Media::addSectionMediaElement($src, 'oleObject'); - $rID = $data[0]; - $objectId = $data[1]; - - $object->setRelationId($rID); - $object->setObjectId($objectId); - $object->setImageRelationId($rIDimg); - - $this->_elementCollection[] = $object; - return $object; - } else { - trigger_error('Source does not exist or unsupported object type.'); - } - } - - /** - * Add a PreserveText Element - * - * @param string $text - * @param mixed $styleFont - * @param mixed $styleParagraph - * @return PHPWord_Section_Footer_PreserveText - */ - public function addPreserveText($text, $styleFont = null, $styleParagraph = null) { - if($this->_insideOf == 'footer' || $this->_insideOf == 'header') { - if(!PHPWord_Shared_String::IsUTF8($text)){ - $text = utf8_encode($text); - } - $ptext = new PHPWord_Section_Footer_PreserveText($text, $styleFont, $styleParagraph); - $this->_elementCollection[] = $ptext; - return $ptext; - } else { - trigger_error('addPreserveText only supported in footer/header.'); - } - } - - /** - * Create a new TextRun - * - * @return PHPWord_Section_TextRun - */ - public function createTextRun($styleParagraph = null) { - $textRun = new PHPWord_Section_TextRun($styleParagraph); - $this->_elementCollection[] = $textRun; - return $textRun; - } - - /** - * Get all Elements - * - * @return array - */ - public function getElements() { - return $this->_elementCollection; - } - - /** - * Get Cell Style - * - * @return PHPWord_Style_Cell - */ - public function getStyle() { - return $this->_style; - } - - /** - * Get Cell width - * - * @return int - */ - public function getWidth() { - return $this->_width; - } -} -?> + + /** + * Add a Text Element + * + * @param string $text + * @param mixed $style + * @return PHPWord_Section_Text + */ + public function addText($text, $styleFont = null, $styleParagraph = null) + { + if (!PHPWord_Shared_String::IsUTF8($text)) { + $text = utf8_encode($text); + } + $text = new PHPWord_Section_Text($text, $styleFont, $styleParagraph); + $this->_elementCollection[] = $text; + return $text; + } + + /** + * Add a Link Element + * + * @param string $linkSrc + * @param string $linkName + * @param mixed $style + * @return PHPWord_Section_Link + */ + public function addLink($linkSrc, $linkName = null, $style = null) + { + if ($this->_insideOf == 'section') { + if (!PHPWord_Shared_String::IsUTF8($linkSrc)) { + $linkSrc = utf8_encode($linkSrc); + } + if (!is_null($linkName)) { + if (!PHPWord_Shared_String::IsUTF8($linkName)) { + $linkName = utf8_encode($linkName); + } + } + + $link = new PHPWord_Section_Link($linkSrc, $linkName, $style); + $rID = PHPWord_Media::addSectionLinkElement($linkSrc); + $link->setRelationId($rID); + + $this->_elementCollection[] = $link; + return $link; + } else { + trigger_error('Unsupported Link header / footer reference'); + return false; + } + } + + /** + * Add a TextBreak Element + * + * @param int $count + */ + public function addTextBreak() + { + $this->_elementCollection[] = new PHPWord_Section_TextBreak(); + } + + /** + * Add a ListItem Element + * + * @param string $text + * @param int $depth + * @param mixed $styleText + * @param mixed $styleList + * @return PHPWord_Section_ListItem + */ + public function addListItem($text, $depth = 0, $styleText = null, $styleList = null) + { + if (!PHPWord_Shared_String::IsUTF8($text)) { + $text = utf8_encode($text); + } + $listItem = new PHPWord_Section_ListItem($text, $depth, $styleText, $styleList); + $this->_elementCollection[] = $listItem; + return $listItem; + } + + /** + * Add a Image Element + * + * @param string $src + * @param mixed $style + * @return PHPWord_Section_Image + */ + public function addImage($src, $style = null) + { + $image = new PHPWord_Section_Image($src, $style); + + if (!is_null($image->getSource())) { + if ($this->_insideOf == 'section') { + $rID = PHPWord_Media::addSectionMediaElement($src, 'image'); + } elseif ($this->_insideOf == 'header') { + $rID = PHPWord_Media::addHeaderMediaElement($this->_pCount, $src); + } elseif ($this->_insideOf == 'footer') { + $rID = PHPWord_Media::addFooterMediaElement($this->_pCount, $src); + } + $image->setRelationId($rID); + + $this->_elementCollection[] = $image; + return $image; + } else { + trigger_error('Source does not exist or unsupported image type.'); + } + } + + /** + * Add a by PHP created Image Element + * + * @param string $link + * @param mixed $style + * @return PHPWord_Section_MemoryImage + */ + public function addMemoryImage($link, $style = null) + { + $memoryImage = new PHPWord_Section_MemoryImage($link, $style); + if (!is_null($memoryImage->getSource())) { + if ($this->_insideOf == 'section') { + $rID = PHPWord_Media::addSectionMediaElement($link, 'image', $memoryImage); + } elseif ($this->_insideOf == 'header') { + $rID = PHPWord_Media::addHeaderMediaElement($this->_pCount, $link, $memoryImage); + } elseif ($this->_insideOf == 'footer') { + $rID = PHPWord_Media::addFooterMediaElement($this->_pCount, $link, $memoryImage); + } + $memoryImage->setRelationId($rID); + + $this->_elementCollection[] = $memoryImage; + return $memoryImage; + } else { + trigger_error('Unsupported image type.'); + } + } + + /** + * Add a OLE-Object Element + * + * @param string $src + * @param mixed $style + * @return PHPWord_Section_Object + */ + public function addObject($src, $style = null) + { + $object = new PHPWord_Section_Object($src, $style); + + if (!is_null($object->getSource())) { + $inf = pathinfo($src); + $ext = $inf['extension']; + if (strlen($ext) == 4 && strtolower(substr($ext, -1)) == 'x') { + $ext = substr($ext, 0, -1); + } + + $iconSrc = PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/'; + if (!file_exists($iconSrc . '_' . $ext . '.png')) { + $iconSrc = $iconSrc . '_default.png'; + } else { + $iconSrc .= '_' . $ext . '.png'; + } + + $rIDimg = PHPWord_Media::addSectionMediaElement($iconSrc, 'image'); + $data = PHPWord_Media::addSectionMediaElement($src, 'oleObject'); + $rID = $data[0]; + $objectId = $data[1]; + + $object->setRelationId($rID); + $object->setObjectId($objectId); + $object->setImageRelationId($rIDimg); + + $this->_elementCollection[] = $object; + return $object; + } else { + trigger_error('Source does not exist or unsupported object type.'); + } + } + + /** + * Add a PreserveText Element + * + * @param string $text + * @param mixed $styleFont + * @param mixed $styleParagraph + * @return PHPWord_Section_Footer_PreserveText + */ + public function addPreserveText($text, $styleFont = null, $styleParagraph = null) + { + if ($this->_insideOf == 'footer' || $this->_insideOf == 'header') { + if (!PHPWord_Shared_String::IsUTF8($text)) { + $text = utf8_encode($text); + } + $ptext = new PHPWord_Section_Footer_PreserveText($text, $styleFont, $styleParagraph); + $this->_elementCollection[] = $ptext; + return $ptext; + } else { + trigger_error('addPreserveText only supported in footer/header.'); + } + } + + /** + * Create a new TextRun + * + * @return PHPWord_Section_TextRun + */ + public function createTextRun($styleParagraph = null) + { + $textRun = new PHPWord_Section_TextRun($styleParagraph); + $this->_elementCollection[] = $textRun; + return $textRun; + } + + /** + * Get all Elements + * + * @return array + */ + public function getElements() + { + return $this->_elementCollection; + } + + /** + * Get Cell Style + * + * @return PHPWord_Style_Cell + */ + public function getStyle() + { + return $this->_style; + } + + /** + * Get Cell width + * + * @return int + */ + public function getWidth() + { + return $this->_width; + } +} \ No newline at end of file diff --git a/Classes/PHPWord/Section/Text.php b/Classes/PHPWord/Section/Text.php old mode 100644 new mode 100755 index 72ff4333..aa6266e7 --- a/Classes/PHPWord/Section/Text.php +++ b/Classes/PHPWord/Section/Text.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Section/TextBreak.php b/Classes/PHPWord/Section/TextBreak.php old mode 100644 new mode 100755 index 0339521d..cf4ef563 --- a/Classes/PHPWord/Section/TextBreak.php +++ b/Classes/PHPWord/Section/TextBreak.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Section/TextRun.php b/Classes/PHPWord/Section/TextRun.php old mode 100644 new mode 100755 index 6a9bfaca..2c7a2166 --- a/Classes/PHPWord/Section/TextRun.php +++ b/Classes/PHPWord/Section/TextRun.php @@ -2,7 +2,7 @@ /** * PHPWord * - * Copyright (c) 2011 PHPWord + * Copyright (c) 2013 PHPWord * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,112 +20,112 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 010 PHPWord + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version Beta 0.6.3, 08.07.2011 + * @version 0.7.0 */ - /** * PHPWord_Section_TextRun - * - * @category PHPWord - * @package PHPWord_Section - * @copyright Copyright (c) 2011 PHPWord */ -class PHPWord_Section_TextRun { - - /** - * Paragraph style - * - * @var PHPWord_Style_Font - */ - private $_styleParagraph; - - /** - * Text collection - * - * @var array - */ - private $_elementCollection; - - - /** - * Create a new TextRun Element - */ - public function __construct($styleParagraph = null) { - $this->_elementCollection = array(); - - // Set paragraph style - if(is_array($styleParagraph)) { - $this->_styleParagraph = new PHPWord_Style_Paragraph(); - - foreach($styleParagraph as $key => $value) { - if(substr($key, 0, 1) != '_') { - $key = '_'.$key; - } - $this->_styleParagraph->setStyleValue($key, $value); - } - } else { - $this->_styleParagraph = $styleParagraph; - } - } - - - /** - * Add a Text Element - * - * @var string $text - * @var mixed $styleFont - * @return PHPWord_Section_Text - */ - public function addText($text = null, $styleFont = null) { - if(!PHPWord_Shared_String::IsUTF8($text)){ - $text = utf8_encode($text); +class PHPWord_Section_TextRun +{ + + /** + * Paragraph style + * + * @var PHPWord_Style_Font + */ + private $_styleParagraph; + + /** + * Text collection + * + * @var array + */ + private $_elementCollection; + + + /** + * Create a new TextRun Element + */ + public function __construct($styleParagraph = null) + { + $this->_elementCollection = array(); + + // Set paragraph style + if (is_array($styleParagraph)) { + $this->_styleParagraph = new PHPWord_Style_Paragraph(); + + foreach ($styleParagraph as $key => $value) { + if (substr($key, 0, 1) != '_') { + $key = '_' . $key; + } + $this->_styleParagraph->setStyleValue($key, $value); + } + } else { + $this->_styleParagraph = $styleParagraph; + } } - $text = new PHPWord_Section_Text($text, $styleFont); - $this->_elementCollection[] = $text; - return $text; - } - - /** - * Add a Link Element - * - * @param string $linkSrc - * @param string $linkName - * @param mixed $styleFont - * @return PHPWord_Section_Link - */ - public function addLink($linkSrc, $linkName = null, $styleFont = null) { - $linkSrc = utf8_encode($linkSrc); - if(!is_null($linkName)) { - $linkName = utf8_encode($linkName); - } - - $link = new PHPWord_Section_Link($linkSrc, $linkName, $styleFont); - $rID = PHPWord_Media::addSectionLinkElement($linkSrc); - $link->setRelationId($rID); - - $this->_elementCollection[] = $link; - return $link; - } - - /** - * Get TextRun content - * - * @return string - */ - public function getElements() { - return $this->_elementCollection; - } - - /** - * Get Paragraph style - * - * @return PHPWord_Style_Paragraph - */ - public function getParagraphStyle() { - return $this->_styleParagraph; - } -} -?> \ No newline at end of file + + + /** + * Add a Text Element + * + * @var string $text + * @var mixed $styleFont + * @return PHPWord_Section_Text + */ + public function addText($text = null, $styleFont = null) + { + if (!PHPWord_Shared_String::IsUTF8($text)) { + $text = utf8_encode($text); + } + $text = new PHPWord_Section_Text($text, $styleFont); + $this->_elementCollection[] = $text; + return $text; + } + + /** + * Add a Link Element + * + * @param string $linkSrc + * @param string $linkName + * @param mixed $styleFont + * @return PHPWord_Section_Link + */ + public function addLink($linkSrc, $linkName = null, $styleFont = null) + { + $linkSrc = utf8_encode($linkSrc); + if (!is_null($linkName)) { + $linkName = utf8_encode($linkName); + } + + $link = new PHPWord_Section_Link($linkSrc, $linkName, $styleFont); + $rID = PHPWord_Media::addSectionLinkElement($linkSrc); + $link->setRelationId($rID); + + $this->_elementCollection[] = $link; + return $link; + } + + /** + * Get TextRun content + * + * @return string + */ + public function getElements() + { + return $this->_elementCollection; + } + + /** + * Get Paragraph style + * + * @return PHPWord_Style_Paragraph + */ + public function getParagraphStyle() + { + return $this->_styleParagraph; + } +} \ No newline at end of file diff --git a/Classes/PHPWord/Section/Title.php b/Classes/PHPWord/Section/Title.php old mode 100644 new mode 100755 index 3e7f2f43..a1de15cf --- a/Classes/PHPWord/Section/Title.php +++ b/Classes/PHPWord/Section/Title.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Shared/Drawing.php b/Classes/PHPWord/Shared/Drawing.php old mode 100644 new mode 100755 index 8f93344e..eadf0b19 --- a/Classes/PHPWord/Shared/Drawing.php +++ b/Classes/PHPWord/Shared/Drawing.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Shared/File.php b/Classes/PHPWord/Shared/File.php old mode 100644 new mode 100755 index bd214eef..f09b3849 --- a/Classes/PHPWord/Shared/File.php +++ b/Classes/PHPWord/Shared/File.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Shared/Font.php b/Classes/PHPWord/Shared/Font.php old mode 100644 new mode 100755 index 4dc0a54d..28b6c2e5 --- a/Classes/PHPWord/Shared/Font.php +++ b/Classes/PHPWord/Shared/Font.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Shared/String.php b/Classes/PHPWord/Shared/String.php old mode 100644 new mode 100755 index 3dcdc80e..ca331642 --- a/Classes/PHPWord/Shared/String.php +++ b/Classes/PHPWord/Shared/String.php @@ -2,7 +2,7 @@ /** * PHPWord * - * Copyright (c) 2011 PHPWord + * Copyright (c) 2013 PHPWord * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,244 +20,251 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 010 PHPWord + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version Beta 0.6.3, 08.07.2011 + * @version 0.7.0 */ - +/** + * Class PHPWord_Shared_String + */ class PHPWord_Shared_String { - /** - * Control characters array - * - * @var string[] - */ - private static $_controlCharacters = array(); + /** + * Control characters array + * + * @var string[] + */ + private static $_controlCharacters = array(); - /** - * Is mbstring extension avalable? - * - * @var boolean - */ - private static $_isMbstringEnabled; + /** + * Is mbstring extension avalable? + * + * @var boolean + */ + private static $_isMbstringEnabled; - /** - * Is iconv extension avalable? - * - * @var boolean - */ - private static $_isIconvEnabled; + /** + * Is iconv extension avalable? + * + * @var boolean + */ + private static $_isIconvEnabled; - /** - * Build control characters array - */ - private static function _buildControlCharacters() { - for ($i = 0; $i <= 19; ++$i) { - if ($i != 9 && $i != 10 && $i != 13) { - $find = '_x' . sprintf('%04s' , strtoupper(dechex($i))) . '_'; - $replace = chr($i); - self::$_controlCharacters[$find] = $replace; - } - } - } + /** + * Build control characters array + */ + private static function _buildControlCharacters() + { + for ($i = 0; $i <= 19; ++$i) { + if ($i != 9 && $i != 10 && $i != 13) { + $find = '_x' . sprintf('%04s', strtoupper(dechex($i))) . '_'; + $replace = chr($i); + self::$_controlCharacters[$find] = $replace; + } + } + } - /** - * Get whether mbstring extension is available - * - * @return boolean - */ - public static function getIsMbstringEnabled() - { - if (isset(self::$_isMbstringEnabled)) { - return self::$_isMbstringEnabled; - } + /** + * Get whether mbstring extension is available + * + * @return boolean + */ + public static function getIsMbstringEnabled() + { + if (isset(self::$_isMbstringEnabled)) { + return self::$_isMbstringEnabled; + } - self::$_isMbstringEnabled = function_exists('mb_convert_encoding') ? - true : false; + self::$_isMbstringEnabled = function_exists('mb_convert_encoding') ? + true : false; - return self::$_isMbstringEnabled; - } + return self::$_isMbstringEnabled; + } - /** - * Get whether iconv extension is available - * - * @return boolean - */ - public static function getIsIconvEnabled() - { - if (isset(self::$_isIconvEnabled)) { - return self::$_isIconvEnabled; - } + /** + * Get whether iconv extension is available + * + * @return boolean + */ + public static function getIsIconvEnabled() + { + if (isset(self::$_isIconvEnabled)) { + return self::$_isIconvEnabled; + } - self::$_isIconvEnabled = function_exists('iconv') ? - true : false; + self::$_isIconvEnabled = function_exists('iconv') ? + true : false; - return self::$_isIconvEnabled; - } + return self::$_isIconvEnabled; + } - /** - * Convert from OpenXML escaped control character to PHP control character - * - * Excel 2007 team: - * ---------------- - * That's correct, control characters are stored directly in the shared-strings table. - * We do encode characters that cannot be represented in XML using the following escape sequence: - * _xHHHH_ where H represents a hexadecimal character in the character's value... - * So you could end up with something like _x0008_ in a string (either in a cell value () - * element or in the shared string element. - * - * @param string $value Value to unescape - * @return string - */ - public static function ControlCharacterOOXML2PHP($value = '') { - if(empty(self::$_controlCharacters)) { - self::_buildControlCharacters(); - } + /** + * Convert from OpenXML escaped control character to PHP control character + * + * Excel 2007 team: + * ---------------- + * That's correct, control characters are stored directly in the shared-strings table. + * We do encode characters that cannot be represented in XML using the following escape sequence: + * _xHHHH_ where H represents a hexadecimal character in the character's value... + * So you could end up with something like _x0008_ in a string (either in a cell value () + * element or in the shared string element. + * + * @param string $value Value to unescape + * @return string + */ + public static function ControlCharacterOOXML2PHP($value = '') + { + if (empty(self::$_controlCharacters)) { + self::_buildControlCharacters(); + } - return str_replace( array_keys(self::$_controlCharacters), array_values(self::$_controlCharacters), $value ); - } + return str_replace(array_keys(self::$_controlCharacters), array_values(self::$_controlCharacters), $value); + } - /** - * Convert from PHP control character to OpenXML escaped control character - * - * Excel 2007 team: - * ---------------- - * That's correct, control characters are stored directly in the shared-strings table. - * We do encode characters that cannot be represented in XML using the following escape sequence: - * _xHHHH_ where H represents a hexadecimal character in the character's value... - * So you could end up with something like _x0008_ in a string (either in a cell value () - * element or in the shared string element. - * - * @param string $value Value to escape - * @return string - */ - public static function ControlCharacterPHP2OOXML($value = '') { - if(empty(self::$_controlCharacters)) { - self::_buildControlCharacters(); - } + /** + * Convert from PHP control character to OpenXML escaped control character + * + * Excel 2007 team: + * ---------------- + * That's correct, control characters are stored directly in the shared-strings table. + * We do encode characters that cannot be represented in XML using the following escape sequence: + * _xHHHH_ where H represents a hexadecimal character in the character's value... + * So you could end up with something like _x0008_ in a string (either in a cell value () + * element or in the shared string element. + * + * @param string $value Value to escape + * @return string + */ + public static function ControlCharacterPHP2OOXML($value = '') + { + if (empty(self::$_controlCharacters)) { + self::_buildControlCharacters(); + } - return str_replace( array_values(self::$_controlCharacters), array_keys(self::$_controlCharacters), $value ); - } + return str_replace(array_values(self::$_controlCharacters), array_keys(self::$_controlCharacters), $value); + } - /** - * Check if a string contains UTF-8 data - * - * @param string $value - * @return boolean - */ - public static function IsUTF8($value = '') { - return $value === '' || preg_match('/^./su', $value) === 1; - } + /** + * Check if a string contains UTF-8 data + * + * @param string $value + * @return boolean + */ + public static function IsUTF8($value = '') + { + return $value === '' || preg_match('/^./su', $value) === 1; + } - /** - * Formats a numeric value as a string for output in various output writers - * - * @param mixed $value - * @return string - */ - public static function FormatNumber($value) { - return number_format($value, 2, '.', ''); - } + /** + * Formats a numeric value as a string for output in various output writers + * + * @param mixed $value + * @return string + */ + public static function FormatNumber($value) + { + return number_format($value, 2, '.', ''); + } - /** - * Converts a UTF-8 string into BIFF8 Unicode string data (8-bit string length) - * Writes the string using uncompressed notation, no rich text, no Asian phonetics - * If mbstring extension is not available, ASCII is assumed, and compressed notation is used - * although this will give wrong results for non-ASCII strings - * see OpenOffice.org's Documentation of the Microsoft Excel File Format, sect. 2.5.3 - * - * @param string $value UTF-8 encoded string - * @return string - */ - public static function UTF8toBIFF8UnicodeShort($value) - { - // character count - $ln = self::CountCharacters($value, 'UTF-8'); + /** + * Converts a UTF-8 string into BIFF8 Unicode string data (8-bit string length) + * Writes the string using uncompressed notation, no rich text, no Asian phonetics + * If mbstring extension is not available, ASCII is assumed, and compressed notation is used + * although this will give wrong results for non-ASCII strings + * see OpenOffice.org's Documentation of the Microsoft Excel File Format, sect. 2.5.3 + * + * @param string $value UTF-8 encoded string + * @return string + */ + public static function UTF8toBIFF8UnicodeShort($value) + { + // character count + $ln = self::CountCharacters($value, 'UTF-8'); - // option flags - $opt = (self::getIsMbstringEnabled() || self::getIsIconvEnabled()) ? - 0x0001 : 0x0000; + // option flags + $opt = (self::getIsMbstringEnabled() || self::getIsIconvEnabled()) ? + 0x0001 : 0x0000; - // characters - $chars = self::ConvertEncoding($value, 'UTF-16LE', 'UTF-8'); + // characters + $chars = self::ConvertEncoding($value, 'UTF-16LE', 'UTF-8'); - $data = pack('CC', $ln, $opt) . $chars; - return $data; - } + $data = pack('CC', $ln, $opt) . $chars; + return $data; + } - /** - * Converts a UTF-8 string into BIFF8 Unicode string data (16-bit string length) - * Writes the string using uncompressed notation, no rich text, no Asian phonetics - * If mbstring extension is not available, ASCII is assumed, and compressed notation is used - * although this will give wrong results for non-ASCII strings - * see OpenOffice.org's Documentation of the Microsoft Excel File Format, sect. 2.5.3 - * - * @param string $value UTF-8 encoded string - * @return string - */ - public static function UTF8toBIFF8UnicodeLong($value) - { - // character count - $ln = self::CountCharacters($value, 'UTF-8'); + /** + * Converts a UTF-8 string into BIFF8 Unicode string data (16-bit string length) + * Writes the string using uncompressed notation, no rich text, no Asian phonetics + * If mbstring extension is not available, ASCII is assumed, and compressed notation is used + * although this will give wrong results for non-ASCII strings + * see OpenOffice.org's Documentation of the Microsoft Excel File Format, sect. 2.5.3 + * + * @param string $value UTF-8 encoded string + * @return string + */ + public static function UTF8toBIFF8UnicodeLong($value) + { + // character count + $ln = self::CountCharacters($value, 'UTF-8'); - // option flags - $opt = (self::getIsMbstringEnabled() || self::getIsIconvEnabled()) ? - 0x0001 : 0x0000; + // option flags + $opt = (self::getIsMbstringEnabled() || self::getIsIconvEnabled()) ? + 0x0001 : 0x0000; - // characters - $chars = self::ConvertEncoding($value, 'UTF-16LE', 'UTF-8'); + // characters + $chars = self::ConvertEncoding($value, 'UTF-16LE', 'UTF-8'); - $data = pack('vC', $ln, $opt) . $chars; - return $data; - } + $data = pack('vC', $ln, $opt) . $chars; + return $data; + } - /** - * Convert string from one encoding to another. First try mbstring, then iconv, or no convertion - * - * @param string $value - * @param string $to Encoding to convert to, e.g. 'UTF-8' - * @param string $from Encoding to convert from, e.g. 'UTF-16LE' - * @return string - */ - public static function ConvertEncoding($value, $to, $from) - { - if (self::getIsMbstringEnabled()) { - $value = mb_convert_encoding($value, $to, $from); - return $value; - } + /** + * Convert string from one encoding to another. First try mbstring, then iconv, or no convertion + * + * @param string $value + * @param string $to Encoding to convert to, e.g. 'UTF-8' + * @param string $from Encoding to convert from, e.g. 'UTF-16LE' + * @return string + */ + public static function ConvertEncoding($value, $to, $from) + { + if (self::getIsMbstringEnabled()) { + $value = mb_convert_encoding($value, $to, $from); + return $value; + } - if (self::getIsIconvEnabled()) { - $value = iconv($from, $to, $value); - return $value; - } + if (self::getIsIconvEnabled()) { + $value = iconv($from, $to, $value); + return $value; + } - // else, no conversion - return $value; - } - - /** - * Get character count. First try mbstring, then iconv, finally strlen - * - * @param string $value - * @param string $enc Encoding - * @return int Character count - */ - public static function CountCharacters($value, $enc = 'UTF-8') - { - if (self::getIsMbstringEnabled()) { - $count = mb_strlen($value, $enc); - return $count; - } + // else, no conversion + return $value; + } - if (self::getIsIconvEnabled()) { - $count = iconv_strlen($value, $enc); - return $count; - } + /** + * Get character count. First try mbstring, then iconv, finally strlen + * + * @param string $value + * @param string $enc Encoding + * @return int Character count + */ + public static function CountCharacters($value, $enc = 'UTF-8') + { + if (self::getIsMbstringEnabled()) { + $count = mb_strlen($value, $enc); + return $count; + } - // else strlen - $count = strlen($value); - return $count; - } + if (self::getIsIconvEnabled()) { + $count = iconv_strlen($value, $enc); + return $count; + } + + // else strlen + $count = strlen($value); + return $count; + } } diff --git a/Classes/PHPWord/Shared/XMLWriter.php b/Classes/PHPWord/Shared/XMLWriter.php old mode 100644 new mode 100755 index 7144f9cc..a8e8377e --- a/Classes/PHPWord/Shared/XMLWriter.php +++ b/Classes/PHPWord/Shared/XMLWriter.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Shared/ZipStreamWrapper.php b/Classes/PHPWord/Shared/ZipStreamWrapper.php old mode 100644 new mode 100755 index 57532758..57f06fca --- a/Classes/PHPWord/Shared/ZipStreamWrapper.php +++ b/Classes/PHPWord/Shared/ZipStreamWrapper.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Style.php b/Classes/PHPWord/Style.php old mode 100644 new mode 100755 index 18f22123..7255e557 --- a/Classes/PHPWord/Style.php +++ b/Classes/PHPWord/Style.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Style/Cell.php b/Classes/PHPWord/Style/Cell.php old mode 100644 new mode 100755 index 090ff7b4..8bc224a9 --- a/Classes/PHPWord/Style/Cell.php +++ b/Classes/PHPWord/Style/Cell.php @@ -2,7 +2,7 @@ /** * PHPWord * - * Copyright (c) 2011 PHPWord + * Copyright (c) 2013 PHPWord * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,299 +20,328 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 010 PHPWord + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version Beta 0.6.3, 08.07.2011 + * @version 0.7.0 */ - /** * PHPWord_Style_Cell - * - * @category PHPWord - * @package PHPWord_Style - * @copyright Copyright (c) 2011 PHPWord */ -class PHPWord_Style_Cell { - - const TEXT_DIR_BTLR = 'btLr'; - const TEXT_DIR_TBRL = 'tbRl'; - - /** - * Vertical align - * - * @var string - */ - private $_valign; - - /** - * Text Direction - * - * @var string - */ - private $_textDirection; - - /** - * Background-Color - * - * @var string - */ - private $_bgColor; - - /** - * Border Top Size - * - * @var int - */ - private $_borderTopSize; - - /** - * Border Top Color - * - * @var string - */ - private $_borderTopColor; - - /** - * Border Left Size - * - * @var int - */ - private $_borderLeftSize; - - /** - * Border Left Color - * - * @var string - */ - private $_borderLeftColor; - - /** - * Border Right Size - * - * @var int - */ - private $_borderRightSize; - - /** - * Border Right Color - * - * @var string - */ - private $_borderRightColor; - - /** - * Border Bottom Size - * - * @var int - */ - private $_borderBottomSize; - - /** - * Border Bottom Color - * - * @var string - */ - private $_borderBottomColor; - - /** - * Border Default Color - * - * @var string - */ - private $_defaultBorderColor; +class PHPWord_Style_Cell +{ - /** - * colspan - * - * @var integer - */ - private $_gridSpan = NULL; + const TEXT_DIR_BTLR = 'btLr'; + const TEXT_DIR_TBRL = 'tbRl'; - /** - * rowspan - * - * @var integer - */ - private $_vMerge = NULL; - - /** - * Create a new Cell Style - */ - public function __construct() { - $this->_valign = null; - $this->_textDirection = null; - $this->_bgColor = null; - $this->_borderTopSize = null; - $this->_borderTopColor = null; - $this->_borderLeftSize = null; - $this->_borderLeftColor = null; - $this->_borderRightSize = null; - $this->_borderRightColor = null; - $this->_borderBottomSize = null; - $this->_borderBottomColor = null; - $this->_defaultBorderColor = '000000'; - } - - /** - * Set style value - * - * @var string $key - * @var mixed $value - */ - public function setStyleValue($key, $value) { - if($key == '_borderSize') { - $this->setBorderSize($value); - } elseif($key == '_borderColor') { - $this->setBorderColor($value); - } else { - $this->$key = $value; - } - } - - public function getVAlign() { - return $this->_valign; - } - - public function setVAlign($pValue = null) { - $this->_valign = $pValue; - } - - public function getTextDirection() { - return $this->_textDirection; - } - - public function setTextDirection($pValue = null) { - $this->_textDirection = $pValue; - } - - public function getBgColor() { - return $this->_bgColor; - } + /** + * Vertical align + * + * @var string + */ + private $_valign; - public function setBgColor($pValue = null) { - $this->_bgColor = $pValue; - } + /** + * Text Direction + * + * @var string + */ + private $_textDirection; - public function setHeight($pValue = null) { - $this->_height = $pValue; - } - - public function setBorderSize($pValue = null) { - $this->_borderTopSize = $pValue; - $this->_borderLeftSize = $pValue; - $this->_borderRightSize = $pValue; - $this->_borderBottomSize = $pValue; - } - - public function getBorderSize() { - $t = $this->getBorderTopSize(); - $l = $this->getBorderLeftSize(); - $r = $this->getBorderRightSize(); - $b = $this->getBorderBottomSize(); - - return array($t, $l, $r, $b); - } - - public function setBorderColor($pValue = null) { - $this->_borderTopColor = $pValue; - $this->_borderLeftColor = $pValue; - $this->_borderRightColor = $pValue; - $this->_borderBottomColor = $pValue; - } - - public function getBorderColor() { - $t = $this->getBorderTopColor(); - $l = $this->getBorderLeftColor(); - $r = $this->getBorderRightColor(); - $b = $this->getBorderBottomColor(); - - return array($t, $l, $r, $b); - } - - public function setBorderTopSize($pValue = null) { - $this->_borderTopSize = $pValue; - } - - public function getBorderTopSize() { - return $this->_borderTopSize; - } - - public function setBorderTopColor($pValue = null) { - $this->_borderTopColor = $pValue; - } - - public function getBorderTopColor() { - return $this->_borderTopColor; - } + /** + * Background-Color + * + * @var string + */ + private $_bgColor; - public function setBorderLeftSize($pValue = null) { - $this->_borderLeftSize = $pValue; - } - - public function getBorderLeftSize() { - return $this->_borderLeftSize; - } - - public function setBorderLeftColor($pValue = null) { - $this->_borderLeftColor = $pValue; - } - - public function getBorderLeftColor() { - return $this->_borderLeftColor; - } + /** + * Border Top Size + * + * @var int + */ + private $_borderTopSize; - public function setBorderRightSize($pValue = null) { - $this->_borderRightSize = $pValue; - } - - public function getBorderRightSize() { - return $this->_borderRightSize; - } - - public function setBorderRightColor($pValue = null) { - $this->_borderRightColor = $pValue; - } - - public function getBorderRightColor() { - return $this->_borderRightColor; - } - - - public function setBorderBottomSize($pValue = null) { - $this->_borderBottomSize = $pValue; - } - - public function getBorderBottomSize() { - return $this->_borderBottomSize; - } - - public function setBorderBottomColor($pValue = null) { - $this->_borderBottomColor = $pValue; - } - - public function getBorderBottomColor() { - return $this->_borderBottomColor; - } - - public function getDefaultBorderColor() { - return $this->_defaultBorderColor; - } + /** + * Border Top Color + * + * @var string + */ + private $_borderTopColor; - public function setGridSpan($pValue = null) { - $this->_gridSpan = $pValue; - } + /** + * Border Left Size + * + * @var int + */ + private $_borderLeftSize; - public function getGridSpan() { - return $this->_gridSpan; - } + /** + * Border Left Color + * + * @var string + */ + private $_borderLeftColor; - public function setVMerge($pValue = null) { - $this->_vMerge = $pValue; - } + /** + * Border Right Size + * + * @var int + */ + private $_borderRightSize; - public function getVMerge() { - return $this->_vMerge; - } -} -?> \ No newline at end of file + /** + * Border Right Color + * + * @var string + */ + private $_borderRightColor; + + /** + * Border Bottom Size + * + * @var int + */ + private $_borderBottomSize; + + /** + * Border Bottom Color + * + * @var string + */ + private $_borderBottomColor; + + /** + * Border Default Color + * + * @var string + */ + private $_defaultBorderColor; + + /** + * colspan + * + * @var integer + */ + private $_gridSpan = NULL; + + /** + * rowspan + * + * @var integer + */ + private $_vMerge = NULL; + + /** + * Create a new Cell Style + */ + public function __construct() + { + $this->_valign = null; + $this->_textDirection = null; + $this->_bgColor = null; + $this->_borderTopSize = null; + $this->_borderTopColor = null; + $this->_borderLeftSize = null; + $this->_borderLeftColor = null; + $this->_borderRightSize = null; + $this->_borderRightColor = null; + $this->_borderBottomSize = null; + $this->_borderBottomColor = null; + $this->_defaultBorderColor = '000000'; + } + + /** + * Set style value + * + * @var string $key + * @var mixed $value + */ + public function setStyleValue($key, $value) + { + if ($key == '_borderSize') { + $this->setBorderSize($value); + } elseif ($key == '_borderColor') { + $this->setBorderColor($value); + } else { + $this->$key = $value; + } + } + + public function getVAlign() + { + return $this->_valign; + } + + public function setVAlign($pValue = null) + { + $this->_valign = $pValue; + } + + public function getTextDirection() + { + return $this->_textDirection; + } + + public function setTextDirection($pValue = null) + { + $this->_textDirection = $pValue; + } + + public function getBgColor() + { + return $this->_bgColor; + } + + public function setBgColor($pValue = null) + { + $this->_bgColor = $pValue; + } + + public function setHeight($pValue = null) + { + $this->_height = $pValue; + } + + public function setBorderSize($pValue = null) + { + $this->_borderTopSize = $pValue; + $this->_borderLeftSize = $pValue; + $this->_borderRightSize = $pValue; + $this->_borderBottomSize = $pValue; + } + + public function getBorderSize() + { + $t = $this->getBorderTopSize(); + $l = $this->getBorderLeftSize(); + $r = $this->getBorderRightSize(); + $b = $this->getBorderBottomSize(); + + return array($t, $l, $r, $b); + } + + public function setBorderColor($pValue = null) + { + $this->_borderTopColor = $pValue; + $this->_borderLeftColor = $pValue; + $this->_borderRightColor = $pValue; + $this->_borderBottomColor = $pValue; + } + + public function getBorderColor() + { + $t = $this->getBorderTopColor(); + $l = $this->getBorderLeftColor(); + $r = $this->getBorderRightColor(); + $b = $this->getBorderBottomColor(); + + return array($t, $l, $r, $b); + } + + public function setBorderTopSize($pValue = null) + { + $this->_borderTopSize = $pValue; + } + + public function getBorderTopSize() + { + return $this->_borderTopSize; + } + + public function setBorderTopColor($pValue = null) + { + $this->_borderTopColor = $pValue; + } + + public function getBorderTopColor() + { + return $this->_borderTopColor; + } + + public function setBorderLeftSize($pValue = null) + { + $this->_borderLeftSize = $pValue; + } + + public function getBorderLeftSize() + { + return $this->_borderLeftSize; + } + + public function setBorderLeftColor($pValue = null) + { + $this->_borderLeftColor = $pValue; + } + + public function getBorderLeftColor() + { + return $this->_borderLeftColor; + } + + public function setBorderRightSize($pValue = null) + { + $this->_borderRightSize = $pValue; + } + + public function getBorderRightSize() + { + return $this->_borderRightSize; + } + + public function setBorderRightColor($pValue = null) + { + $this->_borderRightColor = $pValue; + } + + public function getBorderRightColor() + { + return $this->_borderRightColor; + } + + + public function setBorderBottomSize($pValue = null) + { + $this->_borderBottomSize = $pValue; + } + + public function getBorderBottomSize() + { + return $this->_borderBottomSize; + } + + public function setBorderBottomColor($pValue = null) + { + $this->_borderBottomColor = $pValue; + } + + public function getBorderBottomColor() + { + return $this->_borderBottomColor; + } + + public function getDefaultBorderColor() + { + return $this->_defaultBorderColor; + } + + public function setGridSpan($pValue = null) + { + $this->_gridSpan = $pValue; + } + + public function getGridSpan() + { + return $this->_gridSpan; + } + + public function setVMerge($pValue = null) + { + $this->_vMerge = $pValue; + } + + public function getVMerge() + { + return $this->_vMerge; + } +} \ No newline at end of file diff --git a/Classes/PHPWord/Style/Font.php b/Classes/PHPWord/Style/Font.php old mode 100644 new mode 100755 index 4b391205..eafc10b7 --- a/Classes/PHPWord/Style/Font.php +++ b/Classes/PHPWord/Style/Font.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Style/Image.php b/Classes/PHPWord/Style/Image.php old mode 100644 new mode 100755 index 1d818060..422ddfb8 --- a/Classes/PHPWord/Style/Image.php +++ b/Classes/PHPWord/Style/Image.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Style/ListItem.php b/Classes/PHPWord/Style/ListItem.php old mode 100644 new mode 100755 index 498b88e9..8eb7ffa2 --- a/Classes/PHPWord/Style/ListItem.php +++ b/Classes/PHPWord/Style/ListItem.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Style/Paragraph.php b/Classes/PHPWord/Style/Paragraph.php old mode 100644 new mode 100755 index 937d8650..ccbbd616 --- a/Classes/PHPWord/Style/Paragraph.php +++ b/Classes/PHPWord/Style/Paragraph.php @@ -2,7 +2,7 @@ /** * PHPWord * - * Copyright (c) 2011 PHPWord + * Copyright (c) 2013 PHPWord * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,206 +20,214 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 010 PHPWord + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version Beta 0.6.3, 08.07.2011 + * @version 0.7.0 */ - /** * PHPWord_Style_Paragraph - * - * @category PHPWord - * @package PHPWord_Style - * @copyright Copyright (c) 2011 PHPWord */ -class PHPWord_Style_Paragraph { - - /** - * Paragraph alignment - * - * @var string - */ - private $_align; - - /** - * Space before Paragraph - * - * @var int - */ - private $_spaceBefore; - - /** - * Space after Paragraph - * - * @var int - */ - private $_spaceAfter; - - /** - * Spacing between breaks - * - * @var int - */ - private $_spacing; +class PHPWord_Style_Paragraph +{ - /** - * Set of Custom Tab Stops - * - * @var array - */ - private $_tabs; + /** + * Paragraph alignment + * + * @var string + */ + private $_align; - /** - * Indent by how much - * - * @var int - */ - private $_indent; - - - /** - * New Paragraph Style - */ - public function __construct() { - $this->_align = null; - $this->_spaceBefore = null; - $this->_spaceAfter = null; - $this->_spacing = null; - $this->_tabs = null; - $this->_indent = null; - } - - /** - * Set Style value - * - * @param string $key - * @param mixed $value - */ - public function setStyleValue($key, $value) { - if($key == '_indent') { - $value = (int)$value * 720; // 720 twips per indent - } - if($key == '_spacing') { - $value += 240; // because line height of 1 matches 240 twips + /** + * Space before Paragraph + * + * @var int + */ + private $_spaceBefore; + + /** + * Space after Paragraph + * + * @var int + */ + private $_spaceAfter; + + /** + * Spacing between breaks + * + * @var int + */ + private $_spacing; + + /** + * Set of Custom Tab Stops + * + * @var array + */ + private $_tabs; + + /** + * Indent by how much + * + * @var int + */ + private $_indent; + + + /** + * New Paragraph Style + */ + public function __construct() + { + $this->_align = null; + $this->_spaceBefore = null; + $this->_spaceAfter = null; + $this->_spacing = null; + $this->_tabs = null; + $this->_indent = null; } - if($key === '_tabs') { - $value = new PHPWord_Style_Tabs($value); + + /** + * Set Style value + * + * @param string $key + * @param mixed $value + */ + public function setStyleValue($key, $value) + { + if ($key == '_indent') { + $value = (int)$value * 720; // 720 twips per indent + } + if ($key == '_spacing') { + $value += 240; // because line height of 1 matches 240 twips + } + if ($key === '_tabs') { + $value = new PHPWord_Style_Tabs($value); + } + $this->$key = $value; } - $this->$key = $value; - } - /** - * Get Paragraph Alignment - * - * @return string - */ - public function getAlign() { - return $this->_align; - } + /** + * Get Paragraph Alignment + * + * @return string + */ + public function getAlign() + { + return $this->_align; + } - /** - * Set Paragraph Alignment - * - * @param string $pValue - * @return PHPWord_Style_Paragraph - */ - public function setAlign($pValue = null) { - if(strtolower($pValue) == 'justify') { - // justify becames both - $pValue = 'both'; - } - $this->_align = $pValue; - return $this; - } + /** + * Set Paragraph Alignment + * + * @param string $pValue + * @return PHPWord_Style_Paragraph + */ + public function setAlign($pValue = null) + { + if (strtolower($pValue) == 'justify') { + // justify becames both + $pValue = 'both'; + } + $this->_align = $pValue; + return $this; + } - /** - * Get Space before Paragraph - * - * @return string - */ - public function getSpaceBefore() { - return $this->_spaceBefore; - } + /** + * Get Space before Paragraph + * + * @return string + */ + public function getSpaceBefore() + { + return $this->_spaceBefore; + } - /** - * Set Space before Paragraph - * - * @param int $pValue - * @return PHPWord_Style_Paragraph - */ - public function setSpaceBefore($pValue = null) { - $this->_spaceBefore = $pValue; - return $this; - } + /** + * Set Space before Paragraph + * + * @param int $pValue + * @return PHPWord_Style_Paragraph + */ + public function setSpaceBefore($pValue = null) + { + $this->_spaceBefore = $pValue; + return $this; + } - /** - * Get Space after Paragraph - * - * @return string - */ - public function getSpaceAfter() { - return $this->_spaceAfter; - } + /** + * Get Space after Paragraph + * + * @return string + */ + public function getSpaceAfter() + { + return $this->_spaceAfter; + } - /** - * Set Space after Paragraph - * - * @param int $pValue - * @return PHPWord_Style_Paragraph - */ - public function setSpaceAfter($pValue = null) { - $this->_spaceAfter = $pValue; - return $this; - } + /** + * Set Space after Paragraph + * + * @param int $pValue + * @return PHPWord_Style_Paragraph + */ + public function setSpaceAfter($pValue = null) + { + $this->_spaceAfter = $pValue; + return $this; + } - /** - * Get Spacing between breaks - * - * @return int - */ - public function getSpacing() { - return $this->_spacing; - } + /** + * Get Spacing between breaks + * + * @return int + */ + public function getSpacing() + { + return $this->_spacing; + } - /** - * Set Spacing between breaks - * - * @param int $pValue - * @return PHPWord_Style_Paragraph - */ - public function setSpacing($pValue = null) { - $this->_spacing = $pValue; - return $this; - } + /** + * Set Spacing between breaks + * + * @param int $pValue + * @return PHPWord_Style_Paragraph + */ + public function setSpacing($pValue = null) + { + $this->_spacing = $pValue; + return $this; + } - /** - * Get indentation - * - * @return int - */ - public function getIndent() { - return $this->_indent; - } + /** + * Get indentation + * + * @return int + */ + public function getIndent() + { + return $this->_indent; + } - /** - * Set indentation - * - * @param int $pValue - * @return PHPWord_Style_Paragraph - */ - public function setIndent($pValue = null) { - $this->_indent = $pValue; - return $this; - } + /** + * Set indentation + * + * @param int $pValue + * @return PHPWord_Style_Paragraph + */ + public function setIndent($pValue = null) + { + $this->_indent = $pValue; + return $this; + } - /** - * Get tabs - * - * @return PHPWord_Style_Tabs - */ - public function getTabs() { - return $this->_tabs; - } -} -?> \ No newline at end of file + /** + * Get tabs + * + * @return PHPWord_Style_Tabs + */ + public function getTabs() + { + return $this->_tabs; + } +} \ No newline at end of file diff --git a/Classes/PHPWord/Style/TOC.php b/Classes/PHPWord/Style/TOC.php old mode 100644 new mode 100755 index a91add95..41eaefc4 --- a/Classes/PHPWord/Style/TOC.php +++ b/Classes/PHPWord/Style/TOC.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Style/Tab.php b/Classes/PHPWord/Style/Tab.php old mode 100644 new mode 100755 index cd0882c1..c35f04cb --- a/Classes/PHPWord/Style/Tab.php +++ b/Classes/PHPWord/Style/Tab.php @@ -2,7 +2,7 @@ /** * PHPWord * - * Copyright (c) 2011 PHPWord + * Copyright (c) 2013 PHPWord * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,128 +20,127 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 010 PHPWord + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version {something} + * @version 0.7.0 */ /** * PHPWord_Style_Tabs - * - * @category PHPWord - * @package PHPWord_Style_Paragraph - * @copyright Copyright (c) 2011 PHPWord - * @link http://www.schemacentral.com/sc/ooxml/e-w_tab-1.html w:tab */ -class PHPWord_Style_Tab { +class PHPWord_Style_Tab +{ - /** - * Tab Stop Type - * - * @var string - */ - private $_val; + /** + * Tab Stop Type + * + * @var string + */ + private $_val; - /** - * Tab Leader Character - * - * @var string - */ - private $_leader; + /** + * Tab Leader Character + * + * @var string + */ + private $_leader; - /** - * Tab Stop Position - * - * @var int - */ - private $_position; + /** + * Tab Stop Position + * + * @var int + */ + private $_position; - /** - * Tab Stop Type - * - * @var array - * @link http://www.schemacentral.com/sc/ooxml/a-w_val-26.html Tab Stop Type - */ - private static $_possibleStopTypes = array( - 'clear', // No Tab Stop - 'left', // Left Tab Stop - 'center', // Center Tab Stop - 'right', // Right Tab Stop - 'decimal', // Decimal Tab - 'bar', // Bar Tab - 'num' // List tab - ); + /** + * Tab Stop Type + * + * @var array + * @link http://www.schemacentral.com/sc/ooxml/a-w_val-26.html Tab Stop Type + */ + private static $_possibleStopTypes = array( + 'clear', // No Tab Stop + 'left', // Left Tab Stop + 'center', // Center Tab Stop + 'right', // Right Tab Stop + 'decimal', // Decimal Tab + 'bar', // Bar Tab + 'num' // List tab + ); - /** - * Tab Leader Character - * - * @var array - * @link http://www.schemacentral.com/sc/ooxml/a-w_leader-1.html Tab Leader Character - */ - private static $_possibleLeaders = array( - 'none', // No tab stop leader - 'dot', // Dotted leader line - 'hyphen', // Dashed tab stop leader line - 'underscore', // Solid leader line - 'heavy', // Heavy solid leader line - 'middleDot' // Middle dot leader line - ); + /** + * Tab Leader Character + * + * @var array + * @link http://www.schemacentral.com/sc/ooxml/a-w_leader-1.html Tab Leader Character + */ + private static $_possibleLeaders = array( + 'none', // No tab stop leader + 'dot', // Dotted leader line + 'hyphen', // Dashed tab stop leader line + 'underscore', // Solid leader line + 'heavy', // Heavy solid leader line + 'middleDot' // Middle dot leader line + ); - /** - * Create a new instance of PHPWord_Style_Tab. Both $val and $leader - * must conform to the values put forth in the schema. If they do not - * they will be changed to default values. - * - * @param string $val Defaults to 'clear' if value is not possible. - * @param int $position Must be an integer; otherwise defaults to 0. - * @param string $leader Defaults to NULL if value is not possible. - */ - public function __construct($val = NULL, $position = 0, $leader = NULL) { - // Default to clear if the stop type is not matched - $this->_val = (self::isStopType($val)) ? $val : 'clear'; + /** + * Create a new instance of PHPWord_Style_Tab. Both $val and $leader + * must conform to the values put forth in the schema. If they do not + * they will be changed to default values. + * + * @param string $val Defaults to 'clear' if value is not possible. + * @param int $position Must be an integer; otherwise defaults to 0. + * @param string $leader Defaults to NULL if value is not possible. + */ + public function __construct($val = NULL, $position = 0, $leader = NULL) + { + // Default to clear if the stop type is not matched + $this->_val = (self::isStopType($val)) ? $val : 'clear'; - // Default to 0 if the position is non-numeric - $this->_position = (is_numeric($position)) ? intval($position) : 0; + // Default to 0 if the position is non-numeric + $this->_position = (is_numeric($position)) ? intval($position) : 0; - // Default to NULL if no tab leader - $this->_leader = (self::isLeaderType($leader)) ? $leader : NULL; - } - - /** - * Creates the XML DOM for the instance of PHPWord_Style_Tab. - * - * @param PHPWord_Shared_XMLWriter $objWriter - */ - public function toXml(PHPWord_Shared_XMLWriter &$objWriter = NULL) { - if(isset($objWriter)) { - $objWriter->startElement("w:tab"); - $objWriter->writeAttribute("w:val", $this->_val); - if(!is_null($this->_leader)) { - $objWriter->writeAttribute("w:leader", $this->_leader); - } - $objWriter->writeAttribute("w:pos", $this->_position); - $objWriter->endElement(); + // Default to NULL if no tab leader + $this->_leader = (self::isLeaderType($leader)) ? $leader : NULL; } - } - /** - * Test if attribute is a valid stop type. - * - * @param string $attribute - * @return bool True if it is; false otherwise. - */ - private static function isStopType($attribute) { - return in_array($attribute, self::$_possibleStopTypes); - } + /** + * Creates the XML DOM for the instance of PHPWord_Style_Tab. + * + * @param PHPWord_Shared_XMLWriter $objWriter + */ + public function toXml(PHPWord_Shared_XMLWriter &$objWriter = NULL) + { + if (isset($objWriter)) { + $objWriter->startElement("w:tab"); + $objWriter->writeAttribute("w:val", $this->_val); + if (!is_null($this->_leader)) { + $objWriter->writeAttribute("w:leader", $this->_leader); + } + $objWriter->writeAttribute("w:pos", $this->_position); + $objWriter->endElement(); + } + } - /** - * Test if attribute is a valid leader type. - * - * @param string $attribute - * @return bool True if it is; false otherwise. - */ - private static function isLeaderType($attribute) { - return in_array($attribute, self::$_possibleLeaders); - } -} -?> \ No newline at end of file + /** + * Test if attribute is a valid stop type. + * + * @param string $attribute + * @return bool True if it is; false otherwise. + */ + private static function isStopType($attribute) + { + return in_array($attribute, self::$_possibleStopTypes); + } + + /** + * Test if attribute is a valid leader type. + * + * @param string $attribute + * @return bool True if it is; false otherwise. + */ + private static function isLeaderType($attribute) + { + return in_array($attribute, self::$_possibleLeaders); + } +} \ No newline at end of file diff --git a/Classes/PHPWord/Style/Table.php b/Classes/PHPWord/Style/Table.php old mode 100644 new mode 100755 index ea54d8d2..c3b49ea3 --- a/Classes/PHPWord/Style/Table.php +++ b/Classes/PHPWord/Style/Table.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Style/TableFull.php b/Classes/PHPWord/Style/TableFull.php old mode 100644 new mode 100755 index f19ddd1e..b359a592 --- a/Classes/PHPWord/Style/TableFull.php +++ b/Classes/PHPWord/Style/TableFull.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Style/Tabs.php b/Classes/PHPWord/Style/Tabs.php old mode 100644 new mode 100755 index 096c0b6f..c98d472e --- a/Classes/PHPWord/Style/Tabs.php +++ b/Classes/PHPWord/Style/Tabs.php @@ -2,7 +2,7 @@ /** * PHPWord * - * Copyright (c) 2011 PHPWord + * Copyright (c) 2013 PHPWord * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,48 +20,45 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 010 PHPWord + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version {something} + * @version 0.7.0 */ /** * PHPWord_Style_Tabs - * - * @category PHPWord - * @package PHPWord_Style_Paragraph - * @copyright Copyright (c) 2011 PHPWord - * @link http://www.schemacentral.com/sc/ooxml/e-w_tabs-1.html w:tabs */ -class PHPWord_Style_Tabs { +class PHPWord_Style_Tabs +{ - /** - * Tabs - * - * @var array - */ - private $_tabs; + /** + * Tabs + * + * @var array + */ + private $_tabs; - /** - * - * @param array $tabs - */ - public function __construct(array $tabs) { - $this->_tabs = $tabs; - } - - /** - * - * @param PHPWord_Shared_XMLWriter $objWriter - */ - public function toXml(PHPWord_Shared_XMLWriter &$objWriter = NULL) { - if(isset($objWriter)) { - $objWriter->startElement("w:tabs"); - foreach ($this->_tabs as &$tab) { - $tab->toXml($objWriter); - } - $objWriter->endElement(); + /** + * + * @param array $tabs + */ + public function __construct(array $tabs) + { + $this->_tabs = $tabs; } - } -} -?> \ No newline at end of file + + /** + * + * @param PHPWord_Shared_XMLWriter $objWriter + */ + public function toXml(PHPWord_Shared_XMLWriter &$objWriter = NULL) + { + if (isset($objWriter)) { + $objWriter->startElement("w:tabs"); + foreach ($this->_tabs as &$tab) { + $tab->toXml($objWriter); + } + $objWriter->endElement(); + } + } +} \ No newline at end of file diff --git a/Classes/PHPWord/TOC.php b/Classes/PHPWord/TOC.php old mode 100644 new mode 100755 index 5d9a97cb..994ff2c3 --- a/Classes/PHPWord/TOC.php +++ b/Classes/PHPWord/TOC.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Template.php b/Classes/PHPWord/Template.php old mode 100644 new mode 100755 index 1d2765d0..a01a8541 --- a/Classes/PHPWord/Template.php +++ b/Classes/PHPWord/Template.php @@ -2,7 +2,7 @@ /** * PHPWord * - * Copyright (c) 2011 PHPWord + * Copyright (c) 2013 PHPWord * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,90 +20,88 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 010 PHPWord + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version Beta 0.6.3, 08.07.2011 + * @version 0.7.0 */ - /** * PHPWord_DocumentProperties - * - * @category PHPWord - * @package PHPWord - * @copyright Copyright (c) 2009 - 2011 PHPWord (http://www.codeplex.com/PHPWord) */ -class PHPWord_Template { - +class PHPWord_Template +{ + /** * ZipArchive - * + * * @var ZipArchive */ private $_objZip; - + /** * Temporary Filename - * + * * @var string */ private $_tempFileName; - + /** * Document XML - * + * * @var string */ private $_documentXML; - - + + /** * Create a new Template Object - * + * * @param string $strFilename */ - public function __construct($strFilename) { + public function __construct($strFilename) + { $this->_tempFileName = tempnam(sys_get_temp_dir(), ''); if ($this->_tempFileName !== false) { - // Copy the source File to the temp File - if(!copy($strFilename, $this->_tempFileName)){ - throw new PHPWord_Exception('Could not copy the template from '.$strFilename.' to '.$this->_tempFileName.'.'); - } + // Copy the source File to the temp File + if (!copy($strFilename, $this->_tempFileName)) { + throw new PHPWord_Exception('Could not copy the template from ' . $strFilename . ' to ' . $this->_tempFileName . '.'); + } - $this->_objZip = new ZipArchive(); - $this->_objZip->open($this->_tempFileName); + $this->_objZip = new ZipArchive(); + $this->_objZip->open($this->_tempFileName); - $this->_documentXML = $this->_objZip->getFromName('word/document.xml'); + $this->_documentXML = $this->_objZip->getFromName('word/document.xml'); } else { - throw new PHPWord_Exception('Could not create temporary file with unique name in the default temporary directory.'); + throw new PHPWord_Exception('Could not create temporary file with unique name in the default temporary directory.'); } } - + /** * Set a Template value - * + * * @param mixed $search * @param mixed $replace */ - public function setValue($search, $replace) { + public function setValue($search, $replace) + { $pattern = '|\$\{([^\}]+)\}|U'; preg_match_all($pattern, $this->_documentXML, $matches); foreach ($matches[0] as $value) { - $valueCleaned = preg_replace('/<[^>]+>/', '', $value); - $valueCleaned = preg_replace('/<\/[^>]+>/', '', $valueCleaned); - $this->_documentXML = str_replace($value, $valueCleaned, $this->_documentXML); + $valueCleaned = preg_replace('/<[^>]+>/', '', $value); + $valueCleaned = preg_replace('/<\/[^>]+>/', '', $valueCleaned); + $this->_documentXML = str_replace($value, $valueCleaned, $this->_documentXML); } - if(substr($search, 0, 2) !== '${' && substr($search, -1) !== '}') { - $search = '${'.$search.'}'; + if (substr($search, 0, 2) !== '${' && substr($search, -1) !== '}') { + $search = '${' . $search . '}'; } - - if(!is_array($replace)) { - if(!PHPWord_Shared_String::IsUTF8($replace)){ - $replace = utf8_encode($replace); + + if (!is_array($replace)) { + if (!PHPWord_Shared_String::IsUTF8($replace)) { + $replace = utf8_encode($replace); } } - + $this->_documentXML = str_replace($search, $replace, $this->_documentXML); } @@ -118,22 +116,22 @@ class PHPWord_Template { /** * Save Template - * + * * @param string $strFilename */ - public function save($strFilename) { - if(file_exists($strFilename)) { + public function save($strFilename) + { + if (file_exists($strFilename)) { unlink($strFilename); } - + $this->_objZip->addFromString('word/document.xml', $this->_documentXML); - + // Close zip file - if($this->_objZip->close() === false) { + if ($this->_objZip->close() === false) { throw new Exception('Could not close zip file.'); } - + rename($this->_tempFileName, $strFilename); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/Classes/PHPWord/Writer/IWriter.php b/Classes/PHPWord/Writer/IWriter.php old mode 100644 new mode 100755 index 5e26341a..545c29a8 --- a/Classes/PHPWord/Writer/IWriter.php +++ b/Classes/PHPWord/Writer/IWriter.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Writer/ODText.php b/Classes/PHPWord/Writer/ODText.php old mode 100644 new mode 100755 index f8b10ab9..19e55f60 --- a/Classes/PHPWord/Writer/ODText.php +++ b/Classes/PHPWord/Writer/ODText.php @@ -19,8 +19,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @category PHPWord - * @package PHPWord_Writer_PowerPoint2007 - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @package PHPWord + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Writer/ODText/Content.php b/Classes/PHPWord/Writer/ODText/Content.php old mode 100644 new mode 100755 index 7baac279..69ba3bef --- a/Classes/PHPWord/Writer/ODText/Content.php +++ b/Classes/PHPWord/Writer/ODText/Content.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Writer/ODText/Manifest.php b/Classes/PHPWord/Writer/ODText/Manifest.php old mode 100644 new mode 100755 index 61f9f84d..5509073b --- a/Classes/PHPWord/Writer/ODText/Manifest.php +++ b/Classes/PHPWord/Writer/ODText/Manifest.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Writer/ODText/Meta.php b/Classes/PHPWord/Writer/ODText/Meta.php old mode 100644 new mode 100755 index 6dd1ba0c..ca6d305c --- a/Classes/PHPWord/Writer/ODText/Meta.php +++ b/Classes/PHPWord/Writer/ODText/Meta.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Writer/ODText/Mimetype.php b/Classes/PHPWord/Writer/ODText/Mimetype.php old mode 100644 new mode 100755 index b88d7d4f..f6348f48 --- a/Classes/PHPWord/Writer/ODText/Mimetype.php +++ b/Classes/PHPWord/Writer/ODText/Mimetype.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Writer/ODText/Styles.php b/Classes/PHPWord/Writer/ODText/Styles.php old mode 100644 new mode 100755 index b2ddda00..2ec591ae --- a/Classes/PHPWord/Writer/ODText/Styles.php +++ b/Classes/PHPWord/Writer/ODText/Styles.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Writer/ODText/WriterPart.php b/Classes/PHPWord/Writer/ODText/WriterPart.php old mode 100644 new mode 100755 index 0416040c..5d95d69c --- a/Classes/PHPWord/Writer/ODText/WriterPart.php +++ b/Classes/PHPWord/Writer/ODText/WriterPart.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Writer/RTF.php b/Classes/PHPWord/Writer/RTF.php old mode 100644 new mode 100755 index 24e2681e..24f0157e --- a/Classes/PHPWord/Writer/RTF.php +++ b/Classes/PHPWord/Writer/RTF.php @@ -19,8 +19,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @category PHPWord - * @package PHPWord_Writer_RTF - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @package PHPWord + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Writer/Word2007.php b/Classes/PHPWord/Writer/Word2007.php old mode 100644 new mode 100755 index c9bf9870..91706ab2 --- a/Classes/PHPWord/Writer/Word2007.php +++ b/Classes/PHPWord/Writer/Word2007.php @@ -2,7 +2,7 @@ /** * PHPWord * - * Copyright (c) 2011 PHPWord + * Copyright (c) 2013 PHPWord * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,221 +20,229 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 010 PHPWord + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version Beta 0.6.3, 08.07.2011 + * @version 0.7.0 */ +/** + * Class PHPWord_Writer_Word2007 + */ +class PHPWord_Writer_Word2007 implements PHPWord_Writer_IWriter +{ -class PHPWord_Writer_Word2007 implements PHPWord_Writer_IWriter { - - private $_document; - private $_writerParts; - private $_diskCachingDirectory; - private $_useDiskCaching = false; - private $_imageTypes = array(); - private $_objectTypes = array(); - - public function __construct(PHPWord $PHPWord = null) { - $this->_document = $PHPWord; - - $this->_diskCachingDirectory = './'; - - $this->_writerParts['contenttypes'] = new PHPWord_Writer_Word2007_ContentTypes(); - $this->_writerParts['rels'] = new PHPWord_Writer_Word2007_Rels(); - $this->_writerParts['docprops'] = new PHPWord_Writer_Word2007_DocProps(); - $this->_writerParts['documentrels'] = new PHPWord_Writer_Word2007_DocumentRels(); - $this->_writerParts['document'] = new PHPWord_Writer_Word2007_Document(); - $this->_writerParts['styles'] = new PHPWord_Writer_Word2007_Styles(); - $this->_writerParts['header'] = new PHPWord_Writer_Word2007_Header(); - $this->_writerParts['footer'] = new PHPWord_Writer_Word2007_Footer(); - - foreach($this->_writerParts as $writer) { - $writer->setParentWriter($this); - } - } - - public function save($pFilename = null) { - if(!is_null($this->_document)) { - - // If $pFilename is php://output or php://stdout, make it a temporary file... - $originalFilename = $pFilename; - if(strtolower($pFilename) == 'php://output' || strtolower($pFilename) == 'php://stdout') { - $pFilename = @tempnam('./', 'phppttmp'); - if($pFilename == '') { - $pFilename = $originalFilename; - } - } - - // Create new ZIP file and open it for writing - $objZip = new ZipArchive(); - - // Try opening the ZIP file - if($objZip->open($pFilename, ZIPARCHIVE::OVERWRITE) !== true) { - if($objZip->open($pFilename, ZIPARCHIVE::CREATE) !== true) { - throw new Exception("Could not open " . $pFilename . " for writing."); - } - } - - - $sectionElements = array(); - $_secElements = PHPWord_Media::getSectionMediaElements(); - foreach($_secElements as $element) { // loop through section media elements - if($element['type'] != 'hyperlink') { - $this->_addFileToPackage($objZip, $element); - } - $sectionElements[] = $element; - } - - $_hdrElements = PHPWord_Media::getHeaderMediaElements(); - foreach($_hdrElements as $_headerFile => $_hdrMedia) { // loop through headers - if(count($_hdrMedia) > 0) { - $objZip->addFromString('word/_rels/'.$_headerFile.'.xml.rels', $this->getWriterPart('documentrels')->writeHeaderFooterRels($_hdrMedia)); - foreach($_hdrMedia as $element) { // loop through header media elements - $this->_addFileToPackage($objZip, $element); - } - } - } - - $_ftrElements = PHPWord_Media::getFooterMediaElements(); - foreach($_ftrElements as $_footerFile => $_ftrMedia) { // loop through footers - if(count($_ftrMedia) > 0) { - $objZip->addFromString('word/_rels/'.$_footerFile.'.xml.rels', $this->getWriterPart('documentrels')->writeHeaderFooterRels($_ftrMedia)); - foreach($_ftrMedia as $element) { // loop through footers media elements - $this->_addFileToPackage($objZip, $element); - } - } - } - - - - $_cHdrs = 0; - $_cFtrs = 0; - $rID = PHPWord_Media::countSectionMediaElements() + 6; - $_sections = $this->_document->getSections(); - - foreach($_sections as $section) { - $_headers = $section->getHeaders(); - foreach ($_headers as $index => &$_header) { - $_cHdrs++; - $_header->setRelationId(++$rID); - $_headerFile = 'header'.$_cHdrs.'.xml'; - $sectionElements[] = array('target'=>$_headerFile, 'type'=>'header', 'rID'=>$rID); - $objZip->addFromString('word/'.$_headerFile, $this->getWriterPart('header')->writeHeader($_header)); - } - - $_footer = $section->getFooter(); - if(!is_null($_footer)) { - $_cFtrs++; - $_footer->setRelationId(++$rID); - $_footerCount = $_footer->getFooterCount(); - $_footerFile = 'footer'.$_footerCount.'.xml'; - $sectionElements[] = array('target'=>$_footerFile, 'type'=>'footer', 'rID'=>$rID); - $objZip->addFromString('word/'.$_footerFile, $this->getWriterPart('footer')->writeFooter($_footer)); - } - } - - // build docx file - // Write dynamic files + private $_document; + private $_writerParts; + private $_diskCachingDirectory; + private $_useDiskCaching = false; + private $_imageTypes = array(); + private $_objectTypes = array(); + + public function __construct(PHPWord $PHPWord = null) + { + $this->_document = $PHPWord; + + $this->_diskCachingDirectory = './'; + + $this->_writerParts['contenttypes'] = new PHPWord_Writer_Word2007_ContentTypes(); + $this->_writerParts['rels'] = new PHPWord_Writer_Word2007_Rels(); + $this->_writerParts['docprops'] = new PHPWord_Writer_Word2007_DocProps(); + $this->_writerParts['documentrels'] = new PHPWord_Writer_Word2007_DocumentRels(); + $this->_writerParts['document'] = new PHPWord_Writer_Word2007_Document(); + $this->_writerParts['styles'] = new PHPWord_Writer_Word2007_Styles(); + $this->_writerParts['header'] = new PHPWord_Writer_Word2007_Header(); + $this->_writerParts['footer'] = new PHPWord_Writer_Word2007_Footer(); + + foreach ($this->_writerParts as $writer) { + $writer->setParentWriter($this); + } + } + + public function save($pFilename = null) + { + if (!is_null($this->_document)) { + + // If $pFilename is php://output or php://stdout, make it a temporary file... + $originalFilename = $pFilename; + if (strtolower($pFilename) == 'php://output' || strtolower($pFilename) == 'php://stdout') { + $pFilename = @tempnam('./', 'phppttmp'); + if ($pFilename == '') { + $pFilename = $originalFilename; + } + } + + // Create new ZIP file and open it for writing + $objZip = new ZipArchive(); + + // Try opening the ZIP file + if ($objZip->open($pFilename, ZIPARCHIVE::OVERWRITE) !== true) { + if ($objZip->open($pFilename, ZIPARCHIVE::CREATE) !== true) { + throw new Exception("Could not open " . $pFilename . " for writing."); + } + } + + + $sectionElements = array(); + $_secElements = PHPWord_Media::getSectionMediaElements(); + foreach ($_secElements as $element) { // loop through section media elements + if ($element['type'] != 'hyperlink') { + $this->_addFileToPackage($objZip, $element); + } + $sectionElements[] = $element; + } + + $_hdrElements = PHPWord_Media::getHeaderMediaElements(); + foreach ($_hdrElements as $_headerFile => $_hdrMedia) { // loop through headers + if (count($_hdrMedia) > 0) { + $objZip->addFromString('word/_rels/' . $_headerFile . '.xml.rels', $this->getWriterPart('documentrels')->writeHeaderFooterRels($_hdrMedia)); + foreach ($_hdrMedia as $element) { // loop through header media elements + $this->_addFileToPackage($objZip, $element); + } + } + } + + $_ftrElements = PHPWord_Media::getFooterMediaElements(); + foreach ($_ftrElements as $_footerFile => $_ftrMedia) { // loop through footers + if (count($_ftrMedia) > 0) { + $objZip->addFromString('word/_rels/' . $_footerFile . '.xml.rels', $this->getWriterPart('documentrels')->writeHeaderFooterRels($_ftrMedia)); + foreach ($_ftrMedia as $element) { // loop through footers media elements + $this->_addFileToPackage($objZip, $element); + } + } + } + + + $_cHdrs = 0; + $_cFtrs = 0; + $rID = PHPWord_Media::countSectionMediaElements() + 6; + $_sections = $this->_document->getSections(); + + foreach ($_sections as $section) { + $_headers = $section->getHeaders(); + foreach ($_headers as $index => &$_header) { + $_cHdrs++; + $_header->setRelationId(++$rID); + $_headerFile = 'header' . $_cHdrs . '.xml'; + $sectionElements[] = array('target' => $_headerFile, 'type' => 'header', 'rID' => $rID); + $objZip->addFromString('word/' . $_headerFile, $this->getWriterPart('header')->writeHeader($_header)); + } + + $_footer = $section->getFooter(); + if (!is_null($_footer)) { + $_cFtrs++; + $_footer->setRelationId(++$rID); + $_footerCount = $_footer->getFooterCount(); + $_footerFile = 'footer' . $_footerCount . '.xml'; + $sectionElements[] = array('target' => $_footerFile, 'type' => 'footer', 'rID' => $rID); + $objZip->addFromString('word/' . $_footerFile, $this->getWriterPart('footer')->writeFooter($_footer)); + } + } + + // build docx file + // Write dynamic files $objZip->addFromString('[Content_Types].xml', $this->getWriterPart('contenttypes')->writeContentTypes($this->_imageTypes, $this->_objectTypes, $_cHdrs, $_cFtrs)); - $objZip->addFromString('_rels/.rels', $this->getWriterPart('rels')->writeRelationships($this->_document)); - $objZip->addFromString('docProps/app.xml', $this->getWriterPart('docprops')->writeDocPropsApp($this->_document)); - $objZip->addFromString('docProps/core.xml', $this->getWriterPart('docprops')->writeDocPropsCore($this->_document)); - $objZip->addFromString('word/document.xml', $this->getWriterPart('document')->writeDocument($this->_document)); - $objZip->addFromString('word/_rels/document.xml.rels', $this->getWriterPart('documentrels')->writeDocumentRels($sectionElements)); - $objZip->addFromString('word/styles.xml', $this->getWriterPart('styles')->writeStyles($this->_document)); - + $objZip->addFromString('_rels/.rels', $this->getWriterPart('rels')->writeRelationships($this->_document)); + $objZip->addFromString('docProps/app.xml', $this->getWriterPart('docprops')->writeDocPropsApp($this->_document)); + $objZip->addFromString('docProps/core.xml', $this->getWriterPart('docprops')->writeDocPropsCore($this->_document)); + $objZip->addFromString('word/document.xml', $this->getWriterPart('document')->writeDocument($this->_document)); + $objZip->addFromString('word/_rels/document.xml.rels', $this->getWriterPart('documentrels')->writeDocumentRels($sectionElements)); + $objZip->addFromString('word/styles.xml', $this->getWriterPart('styles')->writeStyles($this->_document)); + // Write static files - $objZip->addFile(PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/numbering.xml', 'word/numbering.xml'); - $objZip->addFile(PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/settings.xml', 'word/settings.xml'); - $objZip->addFile(PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/theme1.xml', 'word/theme/theme1.xml'); - $objZip->addFile(PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/webSettings.xml', 'word/webSettings.xml'); - $objZip->addFile(PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/fontTable.xml', 'word/fontTable.xml'); - - - // Close file - if($objZip->close() === false) { - throw new Exception("Could not close zip file $pFilename."); - } + $objZip->addFile(PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/numbering.xml', 'word/numbering.xml'); + $objZip->addFile(PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/settings.xml', 'word/settings.xml'); + $objZip->addFile(PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/theme1.xml', 'word/theme/theme1.xml'); + $objZip->addFile(PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/webSettings.xml', 'word/webSettings.xml'); + $objZip->addFile(PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/fontTable.xml', 'word/fontTable.xml'); - // If a temporary file was used, copy it to the correct file stream - if($originalFilename != $pFilename) { - if (copy($pFilename, $originalFilename) === false) { - throw new Exception("Could not copy temporary zip file $pFilename to $originalFilename."); - } - @unlink($pFilename); - } - } else { - throw new Exception("PHPWord object unassigned."); - } - } - - private function _chkContentTypes($src) { - $srcInfo = pathinfo($src); - $extension = strtolower($srcInfo['extension']); - if(substr($extension, 0, 3) == 'php') { - $extension = 'php'; - } - $_supportedImageTypes = array('jpg', 'jpeg', 'gif', 'png', 'bmp', 'tif', 'tiff', 'php'); - - if(in_array($extension, $_supportedImageTypes)) { - $imagedata = getimagesize($src); - $imagetype = image_type_to_mime_type($imagedata[2]); - $imageext = image_type_to_extension($imagedata[2]); - $imageext = str_replace('.', '', $imageext); - if($imageext == 'jpeg') $imageext = 'jpg'; - - if(!in_array($imagetype, $this->_imageTypes)) { - $this->_imageTypes[$imageext] = $imagetype; - } - } else { - if(!in_array($extension, $this->_objectTypes)) { - $this->_objectTypes[] = $extension; - } - } - } - - public function getWriterPart($pPartName = '') { - if ($pPartName != '' && isset($this->_writerParts[strtolower($pPartName)])) { - return $this->_writerParts[strtolower($pPartName)]; - } else { - return null; - } - } - - public function getUseDiskCaching() { - return $this->_useDiskCaching; - } - public function setUseDiskCaching($pValue = false, $pDirectory = null) { - $this->_useDiskCaching = $pValue; - - if (!is_null($pDirectory)) { - if (is_dir($pDirectory)) { - $this->_diskCachingDirectory = $pDirectory; - } else { - throw new Exception("Directory does not exist: $pDirectory"); - } - } - - return $this; - } - - private function _addFileToPackage($objZip, $element) { - if(isset($element['isMemImage']) && $element['isMemImage']) { - $image = call_user_func($element['createfunction'], $element['source']); - ob_start(); - call_user_func($element['imagefunction'], $image); - $imageContents = ob_get_contents(); - ob_end_clean(); - $objZip->addFromString('word/'.$element['target'], $imageContents); - imagedestroy($image); - - $this->_chkContentTypes($element['source']); - } else { - $objZip->addFile($element['source'], 'word/'.$element['target']); - $this->_chkContentTypes($element['source']); - } - } -} -?> \ No newline at end of file + // Close file + if ($objZip->close() === false) { + throw new Exception("Could not close zip file $pFilename."); + } + + // If a temporary file was used, copy it to the correct file stream + if ($originalFilename != $pFilename) { + if (copy($pFilename, $originalFilename) === false) { + throw new Exception("Could not copy temporary zip file $pFilename to $originalFilename."); + } + @unlink($pFilename); + } + } else { + throw new Exception("PHPWord object unassigned."); + } + } + + private function _chkContentTypes($src) + { + $srcInfo = pathinfo($src); + $extension = strtolower($srcInfo['extension']); + if (substr($extension, 0, 3) == 'php') { + $extension = 'php'; + } + $_supportedImageTypes = array('jpg', 'jpeg', 'gif', 'png', 'bmp', 'tif', 'tiff', 'php'); + + if (in_array($extension, $_supportedImageTypes)) { + $imagedata = getimagesize($src); + $imagetype = image_type_to_mime_type($imagedata[2]); + $imageext = image_type_to_extension($imagedata[2]); + $imageext = str_replace('.', '', $imageext); + if ($imageext == 'jpeg') $imageext = 'jpg'; + + if (!in_array($imagetype, $this->_imageTypes)) { + $this->_imageTypes[$imageext] = $imagetype; + } + } else { + if (!in_array($extension, $this->_objectTypes)) { + $this->_objectTypes[] = $extension; + } + } + } + + public function getWriterPart($pPartName = '') + { + if ($pPartName != '' && isset($this->_writerParts[strtolower($pPartName)])) { + return $this->_writerParts[strtolower($pPartName)]; + } else { + return null; + } + } + + public function getUseDiskCaching() + { + return $this->_useDiskCaching; + } + + public function setUseDiskCaching($pValue = false, $pDirectory = null) + { + $this->_useDiskCaching = $pValue; + + if (!is_null($pDirectory)) { + if (is_dir($pDirectory)) { + $this->_diskCachingDirectory = $pDirectory; + } else { + throw new Exception("Directory does not exist: $pDirectory"); + } + } + + return $this; + } + + private function _addFileToPackage($objZip, $element) + { + if (isset($element['isMemImage']) && $element['isMemImage']) { + $image = call_user_func($element['createfunction'], $element['source']); + ob_start(); + call_user_func($element['imagefunction'], $image); + $imageContents = ob_get_contents(); + ob_end_clean(); + $objZip->addFromString('word/' . $element['target'], $imageContents); + imagedestroy($image); + + $this->_chkContentTypes($element['source']); + } else { + $objZip->addFile($element['source'], 'word/' . $element['target']); + $this->_chkContentTypes($element['source']); + } + } +} \ No newline at end of file diff --git a/Classes/PHPWord/Writer/Word2007/Base.php b/Classes/PHPWord/Writer/Word2007/Base.php old mode 100644 new mode 100755 index 549f1253..331625fc --- a/Classes/PHPWord/Writer/Word2007/Base.php +++ b/Classes/PHPWord/Writer/Word2007/Base.php @@ -2,7 +2,7 @@ /** * PHPWord * - * Copyright (c) 2011 PHPWord + * Copyright (c) 2013 PHPWord * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,708 +20,769 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 010 PHPWord + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version Beta 0.6.3, 08.07.2011 + * @version 0.7.0 */ +/** + * Class PHPWord_Writer_Word2007_Base + */ +class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart +{ -class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { - - protected function _writeText(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Text $text, $withoutP = false) { - $styleFont = $text->getFontStyle(); - - $SfIsObject = ($styleFont instanceof PHPWord_Style_Font) ? true : false; - - if(!$withoutP) { - $objWriter->startElement('w:p'); - - $styleParagraph = $text->getParagraphStyle(); - $SpIsObject = ($styleParagraph instanceof PHPWord_Style_Paragraph) ? true : false; - - if($SpIsObject) { - $this->_writeParagraphStyle($objWriter, $styleParagraph); - } elseif(!$SpIsObject && !is_null($styleParagraph)) { - $objWriter->startElement('w:pPr'); - $objWriter->startElement('w:pStyle'); - $objWriter->writeAttribute('w:val', $styleParagraph); - $objWriter->endElement(); - $objWriter->endElement(); - } - } - - $strText = htmlspecialchars($text->getText()); - $strText = PHPWord_Shared_String::ControlCharacterPHP2OOXML($strText); - - $objWriter->startElement('w:r'); - - if($SfIsObject) { - $this->_writeTextStyle($objWriter, $styleFont); - } elseif(!$SfIsObject && !is_null($styleFont)) { - $objWriter->startElement('w:rPr'); - $objWriter->startElement('w:rStyle'); - $objWriter->writeAttribute('w:val', $styleFont); - $objWriter->endElement(); - $objWriter->endElement(); - } - - $objWriter->startElement('w:t'); - $objWriter->writeAttribute('xml:space', 'preserve'); // needed because of drawing spaces before and after text - $objWriter->writeRaw($strText); - $objWriter->endElement(); - - $objWriter->endElement(); // w:r - - if(!$withoutP) { - $objWriter->endElement(); // w:p - } - } - - protected function _writeTextRun(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_TextRun $textrun) { - $elements = $textrun->getElements(); - $styleParagraph = $textrun->getParagraphStyle(); - - $SpIsObject = ($styleParagraph instanceof PHPWord_Style_Paragraph) ? true : false; - - $objWriter->startElement('w:p'); - - if($SpIsObject) { - $this->_writeParagraphStyle($objWriter, $styleParagraph); - } elseif(!$SpIsObject && !is_null($styleParagraph)) { - $objWriter->startElement('w:pPr'); - $objWriter->startElement('w:pStyle'); - $objWriter->writeAttribute('w:val', $styleParagraph); - $objWriter->endElement(); - $objWriter->endElement(); - } - - if(count($elements) > 0) { - foreach($elements as $element) { - if($element instanceof PHPWord_Section_Text) { - $this->_writeText($objWriter, $element, true); - } elseif($element instanceof PHPWord_Section_Link) { - $this->_writeLink($objWriter, $element, true); - } - } - } - - $objWriter->endElement(); - } - - protected function _writeParagraphStyle(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Style_Paragraph $style, $withoutPPR = false) { - $align = $style->getAlign(); - $spaceBefore = $style->getSpaceBefore(); - $spaceAfter = $style->getSpaceAfter(); - $spacing = $style->getSpacing(); - $indent = $style->getIndent(); - $tabs = $style->getTabs(); - - if(!is_null($align) || !is_null($spacing) || !is_null($spaceBefore) || !is_null($spaceAfter) || !is_null($indent) || !is_null($tabs)) { - if(!$withoutPPR) { - $objWriter->startElement('w:pPr'); - } - - if(!is_null($align)) { - $objWriter->startElement('w:jc'); - $objWriter->writeAttribute('w:val', $align); - $objWriter->endElement(); - } - - if(!is_null($indent)) { - $objWriter->startElement('w:ind'); - $objWriter->writeAttribute('w:firstLine', 0); - $objWriter->writeAttribute('w:left', $indent); - $objWriter->endElement(); - } + protected function _writeText(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Text $text, $withoutP = false) + { + $styleFont = $text->getFontStyle(); - if(!is_null($spaceBefore) || !is_null($spaceAfter) || !is_null($spacing)) { - $objWriter->startElement('w:spacing'); - if(!is_null($spaceBefore)) { - $objWriter->writeAttribute('w:before', $spaceBefore); + $SfIsObject = ($styleFont instanceof PHPWord_Style_Font) ? true : false; + + if (!$withoutP) { + $objWriter->startElement('w:p'); + + $styleParagraph = $text->getParagraphStyle(); + $SpIsObject = ($styleParagraph instanceof PHPWord_Style_Paragraph) ? true : false; + + if ($SpIsObject) { + $this->_writeParagraphStyle($objWriter, $styleParagraph); + } elseif (!$SpIsObject && !is_null($styleParagraph)) { + $objWriter->startElement('w:pPr'); + $objWriter->startElement('w:pStyle'); + $objWriter->writeAttribute('w:val', $styleParagraph); + $objWriter->endElement(); + $objWriter->endElement(); + } } - if(!is_null($spaceAfter)) { - $objWriter->writeAttribute('w:after', $spaceAfter); + + $strText = htmlspecialchars($text->getText()); + $strText = PHPWord_Shared_String::ControlCharacterPHP2OOXML($strText); + + $objWriter->startElement('w:r'); + + if ($SfIsObject) { + $this->_writeTextStyle($objWriter, $styleFont); + } elseif (!$SfIsObject && !is_null($styleFont)) { + $objWriter->startElement('w:rPr'); + $objWriter->startElement('w:rStyle'); + $objWriter->writeAttribute('w:val', $styleFont); + $objWriter->endElement(); + $objWriter->endElement(); } - if(!is_null($spacing)) { - $objWriter->writeAttribute('w:line', $spacing); - $objWriter->writeAttribute('w:lineRule', 'auto'); + + $objWriter->startElement('w:t'); + $objWriter->writeAttribute('xml:space', 'preserve'); // needed because of drawing spaces before and after text + $objWriter->writeRaw($strText); + $objWriter->endElement(); + + $objWriter->endElement(); // w:r + + if (!$withoutP) { + $objWriter->endElement(); // w:p } - $objWriter->endElement(); - } - - if(!is_null($tabs)) { - $tabs->toXml($objWriter); - } - - if(!$withoutPPR) { - $objWriter->endElement(); // w:pPr - } - } - } - - protected function _writeLink(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Link $link, $withoutP = false) { - $rID = $link->getRelationId(); - $linkName = $link->getLinkName(); - if(is_null($linkName)) { - $linkName = $link->getLinkSrc(); - } - - $styleFont = $link->getFontStyle(); - $SfIsObject = ($styleFont instanceof PHPWord_Style_Font) ? true : false; - - if(!$withoutP) { - $objWriter->startElement('w:p'); - - $styleParagraph = $link->getParagraphStyle(); - $SpIsObject = ($styleParagraph instanceof PHPWord_Style_Paragraph) ? true : false; - - if($SpIsObject) { - $this->_writeParagraphStyle($objWriter, $styleParagraph); - } elseif(!$SpIsObject && !is_null($styleParagraph)) { - $objWriter->startElement('w:pPr'); - $objWriter->startElement('w:pStyle'); - $objWriter->writeAttribute('w:val', $styleParagraph); - $objWriter->endElement(); - $objWriter->endElement(); - } - } - - $objWriter->startElement('w:hyperlink'); - $objWriter->writeAttribute('r:id', 'rId'.$rID); - $objWriter->writeAttribute('w:history', '1'); - - $objWriter->startElement('w:r'); - if($SfIsObject) { - $this->_writeTextStyle($objWriter, $styleFont); - } elseif(!$SfIsObject && !is_null($styleFont)) { - $objWriter->startElement('w:rPr'); - $objWriter->startElement('w:rStyle'); - $objWriter->writeAttribute('w:val', $styleFont); - $objWriter->endElement(); - $objWriter->endElement(); - } - - $objWriter->startElement('w:t'); - $objWriter->writeAttribute('xml:space', 'preserve'); // needed because of drawing spaces before and after text - $objWriter->writeRaw($linkName); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->endElement(); - - if(!$withoutP) { - $objWriter->endElement(); // w:p - } - } - - protected function _writePreserveText(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Footer_PreserveText $textrun) { - $styleFont = $textrun->getFontStyle(); - $styleParagraph = $textrun->getParagraphStyle(); - - $SfIsObject = ($styleFont instanceof PHPWord_Style_Font) ? true : false; - $SpIsObject = ($styleParagraph instanceof PHPWord_Style_Paragraph) ? true : false; - - $arrText = $textrun->getText(); - - $objWriter->startElement('w:p'); - - if($SpIsObject) { - $this->_writeParagraphStyle($objWriter, $styleParagraph); - } elseif(!$SpIsObject && !is_null($styleParagraph)) { - $objWriter->startElement('w:pPr'); - $objWriter->startElement('w:pStyle'); - $objWriter->writeAttribute('w:val', $styleParagraph); - $objWriter->endElement(); - $objWriter->endElement(); - } - - foreach($arrText as $text) { - - if(substr($text, 0, 1) == '{') { - $text = substr($text, 1, -1); - - $objWriter->startElement('w:r'); - $objWriter->startElement('w:fldChar'); - $objWriter->writeAttribute('w:fldCharType', 'begin'); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->startElement('w:r'); - - if($SfIsObject) { - $this->_writeTextStyle($objWriter, $styleFont); - } elseif(!$SfIsObject && !is_null($styleFont)) { - $objWriter->startElement('w:rPr'); - $objWriter->startElement('w:rStyle'); - $objWriter->writeAttribute('w:val', $styleFont); - $objWriter->endElement(); - $objWriter->endElement(); - } - - $objWriter->startElement('w:instrText'); - $objWriter->writeAttribute('xml:space', 'preserve'); - $objWriter->writeRaw($text); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->startElement('w:r'); - $objWriter->startElement('w:fldChar'); - $objWriter->writeAttribute('w:fldCharType', 'separate'); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->startElement('w:r'); - $objWriter->startElement('w:fldChar'); - $objWriter->writeAttribute('w:fldCharType', 'end'); - $objWriter->endElement(); - $objWriter->endElement(); - } else { - $text = htmlspecialchars($text); - $text = PHPWord_Shared_String::ControlCharacterPHP2OOXML($text); - - $objWriter->startElement('w:r'); - - if($SfIsObject) { - $this->_writeTextStyle($objWriter, $styleFont); - } elseif(!$SfIsObject && !is_null($styleFont)) { - $objWriter->startElement('w:rPr'); - $objWriter->startElement('w:rStyle'); - $objWriter->writeAttribute('w:val', $styleFont); - $objWriter->endElement(); - $objWriter->endElement(); - } - - $objWriter->startElement('w:t'); - $objWriter->writeAttribute('xml:space', 'preserve'); - $objWriter->writeRaw($text); - $objWriter->endElement(); - $objWriter->endElement(); - } - } - - $objWriter->endElement(); // p - } - - protected function _writeTextStyle(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Style_Font $style) { - $font = $style->getName(); - $bold = $style->getBold(); - $italic = $style->getItalic(); - $color = $style->getColor(); - $size = $style->getSize(); - $fgColor = $style->getFgColor(); - $striketrough = $style->getStrikethrough(); - $underline = $style->getUnderline(); - - $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); - } - - // 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(); - } - - protected function _writeTextBreak(PHPWord_Shared_XMLWriter $objWriter = null) { - $objWriter->writeElement('w:p', null); - } - - protected function _writeTable(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Table $table) { - $_rows = $table->getRows(); - $_cRows = count($_rows); - - if($_cRows > 0) { - $objWriter->startElement('w:tbl'); - $tblStyle = $table->getStyle(); - if($tblStyle instanceof PHPWord_Style_Table) { - $this->_writeTableStyle($objWriter, $tblStyle); - } else { - if(!empty($tblStyle)) { - $objWriter->startElement('w:tblPr'); - $objWriter->startElement('w:tblStyle'); - $objWriter->writeAttribute('w:val', $tblStyle); - $objWriter->endElement(); - $objWriter->endElement(); - } - } - - $_heights = $table->getRowHeights(); - for($i=0; $i<$_cRows; $i++) { - $row = $_rows[$i]; - $height = $_heights[$i]; - - $objWriter->startElement('w:tr'); - - if(!is_null($height)) { - $objWriter->startElement('w:trPr'); - $objWriter->startElement('w:trHeight'); - $objWriter->writeAttribute('w:val', $height); - $objWriter->endElement(); - $objWriter->endElement(); - } - - foreach($row as $cell) { - $objWriter->startElement('w:tc'); - - $cellStyle = $cell->getStyle(); - $width = $cell->getWidth(); - - $objWriter->startElement('w:tcPr'); - $objWriter->startElement('w:tcW'); - $objWriter->writeAttribute('w:w', $width); - $objWriter->writeAttribute('w:type', 'dxa'); - $objWriter->endElement(); - - if($cellStyle instanceof PHPWord_Style_Cell) { - $this->_writeCellStyle($objWriter, $cellStyle); - } - - $objWriter->endElement(); - - $_elements = $cell->getElements(); - if(count($_elements) > 0) { - foreach($_elements as $element) { - if($element instanceof PHPWord_Section_Text) { - $this->_writeText($objWriter, $element); - } elseif($element instanceof PHPWord_Section_TextRun) { - $this->_writeTextRun($objWriter, $element); - } elseif($element instanceof PHPWord_Section_Link) { - $this->_writeLink($objWriter, $element); - } elseif($element instanceof PHPWord_Section_TextBreak) { - $this->_writeTextBreak($objWriter); - } elseif($element instanceof PHPWord_Section_ListItem) { - $this->_writeListItem($objWriter, $element); - } elseif($element instanceof PHPWord_Section_Image || - $element instanceof PHPWord_Section_MemoryImage) { - $this->_writeImage($objWriter, $element); - } elseif($element instanceof PHPWord_Section_Object) { - $this->_writeObject($objWriter, $element); - } elseif($element instanceof PHPWord_Section_Footer_PreserveText) { - $this->_writePreserveText($objWriter, $element); - } - } - } else { - $this->_writeTextBreak($objWriter); - } - - $objWriter->endElement(); - } - $objWriter->endElement(); - } - $objWriter->endElement(); - } - } - - protected function _writeTableStyle(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Style_Table $style = null) { - $margins = $style->getCellMargin(); - $mTop = (!is_null($margins[0])) ? true : false; - $mLeft = (!is_null($margins[1])) ? true : false; - $mRight = (!is_null($margins[2])) ? true : false; - $mBottom = (!is_null($margins[3])) ? true : false; - - if($mTop || $mLeft || $mRight || $mBottom) { - $objWriter->startElement('w:tblPr'); - $objWriter->startElement('w:tblCellMar'); - - if($mTop) { - $objWriter->startElement('w:top'); - $objWriter->writeAttribute('w:w', $margins[0]); - $objWriter->writeAttribute('w:type', 'dxa'); - $objWriter->endElement(); - } - - if($mLeft) { - $objWriter->startElement('w:left'); - $objWriter->writeAttribute('w:w', $margins[1]); - $objWriter->writeAttribute('w:type', 'dxa'); - $objWriter->endElement(); - } - - if($mRight) { - $objWriter->startElement('w:right'); - $objWriter->writeAttribute('w:w', $margins[2]); - $objWriter->writeAttribute('w:type', 'dxa'); - $objWriter->endElement(); - } - - if($mBottom) { - $objWriter->startElement('w:bottom'); - $objWriter->writeAttribute('w:w', $margins[3]); - $objWriter->writeAttribute('w:type', 'dxa'); - $objWriter->endElement(); - } - - $objWriter->endElement(); - $objWriter->endElement(); - } - } - - 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; - - $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:vAlign'); - $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(); - } - } - $gridSpan = $style->getGridSpan(); - if(!is_null($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(); + protected function _writeTextRun(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_TextRun $textrun) + { + $elements = $textrun->getElements(); + $styleParagraph = $textrun->getParagraphStyle(); + + $SpIsObject = ($styleParagraph instanceof PHPWord_Style_Paragraph) ? true : false; + + $objWriter->startElement('w:p'); + + if ($SpIsObject) { + $this->_writeParagraphStyle($objWriter, $styleParagraph); + } elseif (!$SpIsObject && !is_null($styleParagraph)) { + $objWriter->startElement('w:pPr'); + $objWriter->startElement('w:pStyle'); + $objWriter->writeAttribute('w:val', $styleParagraph); + $objWriter->endElement(); + $objWriter->endElement(); + } + + if (count($elements) > 0) { + foreach ($elements as $element) { + if ($element instanceof PHPWord_Section_Text) { + $this->_writeText($objWriter, $element, true); + } elseif ($element instanceof PHPWord_Section_Link) { + $this->_writeLink($objWriter, $element, true); + } + } + } + + $objWriter->endElement(); } - } - - protected function _writeImage(PHPWord_Shared_XMLWriter $objWriter = null, $image) { - $rId = $image->getRelationId(); - - $style = $image->getStyle(); - $width = $style->getWidth(); - $height = $style->getHeight(); - $align = $style->getAlign(); - - $objWriter->startElement('w:p'); - - if(!is_null($align)) { - $objWriter->startElement('w:pPr'); - $objWriter->startElement('w:jc'); - $objWriter->writeAttribute('w:val', $align); - $objWriter->endElement(); - $objWriter->endElement(); - } - - $objWriter->startElement('w:r'); - - $objWriter->startElement('w:pict'); - - $objWriter->startElement('v:shape'); - $objWriter->writeAttribute('type', '#_x0000_t75'); - $objWriter->writeAttribute('style', 'width:'.$width.'px;height:'.$height.'px'); - - $objWriter->startElement('v:imagedata'); - $objWriter->writeAttribute('r:id', 'rId'.$rId); - $objWriter->writeAttribute('o:title', ''); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - } - - protected function _writeWatermark(PHPWord_Shared_XMLWriter $objWriter = null, $image) { - $rId = $image->getRelationId(); - - $style = $image->getStyle(); - $width = $style->getWidth(); - $height = $style->getHeight(); - $marginLeft = $style->getMarginLeft(); - $marginTop = $style->getMarginTop(); - - $objWriter->startElement('w:p'); - - $objWriter->startElement('w:r'); - - $objWriter->startElement('w:pict'); - - $objWriter->startElement('v:shape'); - $objWriter->writeAttribute('type', '#_x0000_t75'); - - $strStyle = 'position:absolute;'; - $strStyle .= ' width:'.$width.'px;'; - $strStyle .= ' height:'.$height.'px;'; - if(!is_null($marginTop)) { - $strStyle .= ' margin-top:'.$marginTop.'px;'; - } - if(!is_null($marginLeft)) { - $strStyle .= ' margin-left:'.$marginLeft.'px;'; - } - - $objWriter->writeAttribute('style', $strStyle); - - $objWriter->startElement('v:imagedata'); - $objWriter->writeAttribute('r:id', 'rId'.$rId); - $objWriter->writeAttribute('o:title', ''); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); - } - - protected function _writeTitle(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Title $title) { - $text = htmlspecialchars($title->getText()); - $text = PHPWord_Shared_String::ControlCharacterPHP2OOXML($text); - $anchor = $title->getAnchor(); - $bookmarkId = $title->getBookmarkId(); - $style = $title->getStyle(); - - $objWriter->startElement('w:p'); - - if(!empty($style)) { - $objWriter->startElement('w:pPr'); - $objWriter->startElement('w:pStyle'); - $objWriter->writeAttribute('w:val', $style); - $objWriter->endElement(); - $objWriter->endElement(); - } - - $objWriter->startElement('w:r'); - $objWriter->startElement('w:fldChar'); - $objWriter->writeAttribute('w:fldCharType', 'end'); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->startElement('w:bookmarkStart'); - $objWriter->writeAttribute('w:id', $bookmarkId); - $objWriter->writeAttribute('w:name', $anchor); - $objWriter->endElement(); - - $objWriter->startElement('w:r'); - $objWriter->startElement('w:t'); - $objWriter->writeRaw($text); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->startElement('w:bookmarkEnd'); - $objWriter->writeAttribute('w:id', $bookmarkId); - $objWriter->endElement(); - - $objWriter->endElement(); - } -} -?> \ No newline at end of file + + protected function _writeParagraphStyle(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Style_Paragraph $style, $withoutPPR = false) + { + $align = $style->getAlign(); + $spaceBefore = $style->getSpaceBefore(); + $spaceAfter = $style->getSpaceAfter(); + $spacing = $style->getSpacing(); + $indent = $style->getIndent(); + $tabs = $style->getTabs(); + + if (!is_null($align) || !is_null($spacing) || !is_null($spaceBefore) || !is_null($spaceAfter) || !is_null($indent) || !is_null($tabs)) { + if (!$withoutPPR) { + $objWriter->startElement('w:pPr'); + } + + if (!is_null($align)) { + $objWriter->startElement('w:jc'); + $objWriter->writeAttribute('w:val', $align); + $objWriter->endElement(); + } + + if (!is_null($indent)) { + $objWriter->startElement('w:ind'); + $objWriter->writeAttribute('w:firstLine', 0); + $objWriter->writeAttribute('w:left', $indent); + $objWriter->endElement(); + } + + if (!is_null($spaceBefore) || !is_null($spaceAfter) || !is_null($spacing)) { + $objWriter->startElement('w:spacing'); + if (!is_null($spaceBefore)) { + $objWriter->writeAttribute('w:before', $spaceBefore); + } + if (!is_null($spaceAfter)) { + $objWriter->writeAttribute('w:after', $spaceAfter); + } + if (!is_null($spacing)) { + $objWriter->writeAttribute('w:line', $spacing); + $objWriter->writeAttribute('w:lineRule', 'auto'); + } + $objWriter->endElement(); + } + + if (!is_null($tabs)) { + $tabs->toXml($objWriter); + } + + if (!$withoutPPR) { + $objWriter->endElement(); // w:pPr + } + } + } + + protected function _writeLink(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Link $link, $withoutP = false) + { + $rID = $link->getRelationId(); + $linkName = $link->getLinkName(); + if (is_null($linkName)) { + $linkName = $link->getLinkSrc(); + } + + $styleFont = $link->getFontStyle(); + $SfIsObject = ($styleFont instanceof PHPWord_Style_Font) ? true : false; + + if (!$withoutP) { + $objWriter->startElement('w:p'); + + $styleParagraph = $link->getParagraphStyle(); + $SpIsObject = ($styleParagraph instanceof PHPWord_Style_Paragraph) ? true : false; + + if ($SpIsObject) { + $this->_writeParagraphStyle($objWriter, $styleParagraph); + } elseif (!$SpIsObject && !is_null($styleParagraph)) { + $objWriter->startElement('w:pPr'); + $objWriter->startElement('w:pStyle'); + $objWriter->writeAttribute('w:val', $styleParagraph); + $objWriter->endElement(); + $objWriter->endElement(); + } + } + + $objWriter->startElement('w:hyperlink'); + $objWriter->writeAttribute('r:id', 'rId' . $rID); + $objWriter->writeAttribute('w:history', '1'); + + $objWriter->startElement('w:r'); + if ($SfIsObject) { + $this->_writeTextStyle($objWriter, $styleFont); + } elseif (!$SfIsObject && !is_null($styleFont)) { + $objWriter->startElement('w:rPr'); + $objWriter->startElement('w:rStyle'); + $objWriter->writeAttribute('w:val', $styleFont); + $objWriter->endElement(); + $objWriter->endElement(); + } + + $objWriter->startElement('w:t'); + $objWriter->writeAttribute('xml:space', 'preserve'); // needed because of drawing spaces before and after text + $objWriter->writeRaw($linkName); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->endElement(); + + if (!$withoutP) { + $objWriter->endElement(); // w:p + } + } + + protected function _writePreserveText(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Footer_PreserveText $textrun) + { + $styleFont = $textrun->getFontStyle(); + $styleParagraph = $textrun->getParagraphStyle(); + + $SfIsObject = ($styleFont instanceof PHPWord_Style_Font) ? true : false; + $SpIsObject = ($styleParagraph instanceof PHPWord_Style_Paragraph) ? true : false; + + $arrText = $textrun->getText(); + + $objWriter->startElement('w:p'); + + if ($SpIsObject) { + $this->_writeParagraphStyle($objWriter, $styleParagraph); + } elseif (!$SpIsObject && !is_null($styleParagraph)) { + $objWriter->startElement('w:pPr'); + $objWriter->startElement('w:pStyle'); + $objWriter->writeAttribute('w:val', $styleParagraph); + $objWriter->endElement(); + $objWriter->endElement(); + } + + foreach ($arrText as $text) { + + if (substr($text, 0, 1) == '{') { + $text = substr($text, 1, -1); + + $objWriter->startElement('w:r'); + $objWriter->startElement('w:fldChar'); + $objWriter->writeAttribute('w:fldCharType', 'begin'); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('w:r'); + + if ($SfIsObject) { + $this->_writeTextStyle($objWriter, $styleFont); + } elseif (!$SfIsObject && !is_null($styleFont)) { + $objWriter->startElement('w:rPr'); + $objWriter->startElement('w:rStyle'); + $objWriter->writeAttribute('w:val', $styleFont); + $objWriter->endElement(); + $objWriter->endElement(); + } + + $objWriter->startElement('w:instrText'); + $objWriter->writeAttribute('xml:space', 'preserve'); + $objWriter->writeRaw($text); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('w:r'); + $objWriter->startElement('w:fldChar'); + $objWriter->writeAttribute('w:fldCharType', 'separate'); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('w:r'); + $objWriter->startElement('w:fldChar'); + $objWriter->writeAttribute('w:fldCharType', 'end'); + $objWriter->endElement(); + $objWriter->endElement(); + } else { + $text = htmlspecialchars($text); + $text = PHPWord_Shared_String::ControlCharacterPHP2OOXML($text); + + $objWriter->startElement('w:r'); + + if ($SfIsObject) { + $this->_writeTextStyle($objWriter, $styleFont); + } elseif (!$SfIsObject && !is_null($styleFont)) { + $objWriter->startElement('w:rPr'); + $objWriter->startElement('w:rStyle'); + $objWriter->writeAttribute('w:val', $styleFont); + $objWriter->endElement(); + $objWriter->endElement(); + } + + $objWriter->startElement('w:t'); + $objWriter->writeAttribute('xml:space', 'preserve'); + $objWriter->writeRaw($text); + $objWriter->endElement(); + $objWriter->endElement(); + } + } + + $objWriter->endElement(); // p + } + + protected function _writeTextStyle(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Style_Font $style) + { + $font = $style->getName(); + $bold = $style->getBold(); + $italic = $style->getItalic(); + $color = $style->getColor(); + $size = $style->getSize(); + $fgColor = $style->getFgColor(); + $striketrough = $style->getStrikethrough(); + $underline = $style->getUnderline(); + + $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); + } + + // 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(); + } + + protected function _writeTextBreak(PHPWord_Shared_XMLWriter $objWriter = null) + { + $objWriter->writeElement('w:p', null); + } + + protected function _writeTable(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Table $table) + { + $_rows = $table->getRows(); + $_cRows = count($_rows); + + if ($_cRows > 0) { + $objWriter->startElement('w:tbl'); + $tblStyle = $table->getStyle(); + if ($tblStyle instanceof PHPWord_Style_Table) { + $this->_writeTableStyle($objWriter, $tblStyle); + } else { + if (!empty($tblStyle)) { + $objWriter->startElement('w:tblPr'); + $objWriter->startElement('w:tblStyle'); + $objWriter->writeAttribute('w:val', $tblStyle); + $objWriter->endElement(); + $objWriter->endElement(); + } + } + + $_heights = $table->getRowHeights(); + for ($i = 0; $i < $_cRows; $i++) { + $row = $_rows[$i]; + $height = $_heights[$i]; + + $objWriter->startElement('w:tr'); + + if (!is_null($height)) { + $objWriter->startElement('w:trPr'); + $objWriter->startElement('w:trHeight'); + $objWriter->writeAttribute('w:val', $height); + $objWriter->endElement(); + $objWriter->endElement(); + } + + foreach ($row as $cell) { + $objWriter->startElement('w:tc'); + + $cellStyle = $cell->getStyle(); + $width = $cell->getWidth(); + + $objWriter->startElement('w:tcPr'); + $objWriter->startElement('w:tcW'); + $objWriter->writeAttribute('w:w', $width); + $objWriter->writeAttribute('w:type', 'dxa'); + $objWriter->endElement(); + + if ($cellStyle instanceof PHPWord_Style_Cell) { + $this->_writeCellStyle($objWriter, $cellStyle); + } + + $objWriter->endElement(); + + $_elements = $cell->getElements(); + if (count($_elements) > 0) { + foreach ($_elements as $element) { + if ($element instanceof PHPWord_Section_Text) { + $this->_writeText($objWriter, $element); + } elseif ($element instanceof PHPWord_Section_TextRun) { + $this->_writeTextRun($objWriter, $element); + } elseif ($element instanceof PHPWord_Section_Link) { + $this->_writeLink($objWriter, $element); + } elseif ($element instanceof PHPWord_Section_TextBreak) { + $this->_writeTextBreak($objWriter); + } elseif ($element instanceof PHPWord_Section_ListItem) { + $this->_writeListItem($objWriter, $element); + } elseif ($element instanceof PHPWord_Section_Image || + $element instanceof PHPWord_Section_MemoryImage + ) { + $this->_writeImage($objWriter, $element); + } elseif ($element instanceof PHPWord_Section_Object) { + $this->_writeObject($objWriter, $element); + } elseif ($element instanceof PHPWord_Section_Footer_PreserveText) { + $this->_writePreserveText($objWriter, $element); + } + } + } else { + $this->_writeTextBreak($objWriter); + } + + $objWriter->endElement(); + } + $objWriter->endElement(); + } + $objWriter->endElement(); + } + } + + protected function _writeTableStyle(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Style_Table $style = null) + { + $margins = $style->getCellMargin(); + $mTop = (!is_null($margins[0])) ? true : false; + $mLeft = (!is_null($margins[1])) ? true : false; + $mRight = (!is_null($margins[2])) ? true : false; + $mBottom = (!is_null($margins[3])) ? true : false; + + if ($mTop || $mLeft || $mRight || $mBottom) { + $objWriter->startElement('w:tblPr'); + $objWriter->startElement('w:tblCellMar'); + + if ($mTop) { + $objWriter->startElement('w:top'); + $objWriter->writeAttribute('w:w', $margins[0]); + $objWriter->writeAttribute('w:type', 'dxa'); + $objWriter->endElement(); + } + + if ($mLeft) { + $objWriter->startElement('w:left'); + $objWriter->writeAttribute('w:w', $margins[1]); + $objWriter->writeAttribute('w:type', 'dxa'); + $objWriter->endElement(); + } + + if ($mRight) { + $objWriter->startElement('w:right'); + $objWriter->writeAttribute('w:w', $margins[2]); + $objWriter->writeAttribute('w:type', 'dxa'); + $objWriter->endElement(); + } + + if ($mBottom) { + $objWriter->startElement('w:bottom'); + $objWriter->writeAttribute('w:w', $margins[3]); + $objWriter->writeAttribute('w:type', 'dxa'); + $objWriter->endElement(); + } + + $objWriter->endElement(); + $objWriter->endElement(); + } + } + + 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; + + $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:vAlign'); + $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(); + } + } + $gridSpan = $style->getGridSpan(); + if (!is_null($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(); + } + } + + /** + * @param \PHPWord_Shared_XMLWriter $objWriter + * @param \PHPWord_Section_Image $image + */ + protected function _writeImage(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Image $image) + { + $rId = $image->getRelationId(); + + $style = $image->getStyle(); + $width = $style->getWidth(); + $height = $style->getHeight(); + $align = $style->getAlign(); + $marginTop = $style->getMarginTop(); + $marginLeft = $style->getMarginLeft(); + $wrappingStyle = $style->getWrappingStyle(); + + $objWriter->startElement('w:p'); + + if (!is_null($align)) { + $objWriter->startElement('w:pPr'); + $objWriter->startElement('w:jc'); + $objWriter->writeAttribute('w:val', $align); + $objWriter->endElement(); + $objWriter->endElement(); + } + + $objWriter->startElement('w:r'); + + $objWriter->startElement('w:pict'); + + $objWriter->startElement('v:shape'); + $objWriter->writeAttribute('type', '#_x0000_t75'); + + $imgStyle = ''; + if (null !== $width) { + $imgStyle .= 'width:' . $width . 'px;'; + } + if (null !== $height) { + $imgStyle .= 'height:' . $height . 'px;'; + } + if (null !== $marginTop) { + $imgStyle .= 'margin-top:' . $marginTop . 'in;'; + } + if (null !== $marginLeft) { + $imgStyle .= 'margin-left:' . $marginLeft . 'in;'; + } + + switch ($wrappingStyle) { + case PHPWord_Style_Image::WRAPPING_STYLE_BEHIND: + $imgStyle .= 'position:absolute;z-index:-251658752;'; + break; + case PHPWord_Style_Image::WRAPPING_STYLE_SQUARE: + $imgStyle .= 'position:absolute;z-index:251659264;mso-position-horizontal:absolute;mso-position-vertical:absolute;'; + break; + case PHPWord_Style_Image::WRAPPING_STYLE_TIGHT: + $imgStyle .= 'position:absolute;z-index:251659264;mso-wrap-edited:f;mso-position-horizontal:absolute;mso-position-vertical:absolute'; + break; + case PHPWord_Style_Image::WRAPPING_STYLE_INFRONT: + $imgStyle .= 'position:absolute;zz-index:251659264;mso-position-horizontal:absolute;mso-position-vertical:absolute;'; + break; + } + + $objWriter->writeAttribute('style', $imgStyle); + + $objWriter->startElement('v:imagedata'); + $objWriter->writeAttribute('r:id', 'rId' . $rId); + $objWriter->writeAttribute('o:title', ''); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + } + + protected function _writeWatermark(PHPWord_Shared_XMLWriter $objWriter = null, $image) + { + $rId = $image->getRelationId(); + + $style = $image->getStyle(); + $width = $style->getWidth(); + $height = $style->getHeight(); + $marginLeft = $style->getMarginLeft(); + $marginTop = $style->getMarginTop(); + + $objWriter->startElement('w:p'); + + $objWriter->startElement('w:r'); + + $objWriter->startElement('w:pict'); + + $objWriter->startElement('v:shape'); + $objWriter->writeAttribute('type', '#_x0000_t75'); + + $strStyle = 'position:absolute;'; + $strStyle .= ' width:' . $width . 'px;'; + $strStyle .= ' height:' . $height . 'px;'; + if (!is_null($marginTop)) { + $strStyle .= ' margin-top:' . $marginTop . 'px;'; + } + if (!is_null($marginLeft)) { + $strStyle .= ' margin-left:' . $marginLeft . 'px;'; + } + + $objWriter->writeAttribute('style', $strStyle); + + $objWriter->startElement('v:imagedata'); + $objWriter->writeAttribute('r:id', 'rId' . $rId); + $objWriter->writeAttribute('o:title', ''); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + } + + protected function _writeTitle(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Title $title) + { + $text = htmlspecialchars($title->getText()); + $text = PHPWord_Shared_String::ControlCharacterPHP2OOXML($text); + $anchor = $title->getAnchor(); + $bookmarkId = $title->getBookmarkId(); + $style = $title->getStyle(); + + $objWriter->startElement('w:p'); + + if (!empty($style)) { + $objWriter->startElement('w:pPr'); + $objWriter->startElement('w:pStyle'); + $objWriter->writeAttribute('w:val', $style); + $objWriter->endElement(); + $objWriter->endElement(); + } + + $objWriter->startElement('w:r'); + $objWriter->startElement('w:fldChar'); + $objWriter->writeAttribute('w:fldCharType', 'end'); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('w:bookmarkStart'); + $objWriter->writeAttribute('w:id', $bookmarkId); + $objWriter->writeAttribute('w:name', $anchor); + $objWriter->endElement(); + + $objWriter->startElement('w:r'); + $objWriter->startElement('w:t'); + $objWriter->writeRaw($text); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('w:bookmarkEnd'); + $objWriter->writeAttribute('w:id', $bookmarkId); + $objWriter->endElement(); + + $objWriter->endElement(); + } +} \ No newline at end of file diff --git a/Classes/PHPWord/Writer/Word2007/ContentTypes.php b/Classes/PHPWord/Writer/Word2007/ContentTypes.php old mode 100644 new mode 100755 index e9d1b40c..6ec85179 --- a/Classes/PHPWord/Writer/Word2007/ContentTypes.php +++ b/Classes/PHPWord/Writer/Word2007/ContentTypes.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Writer/Word2007/DocProps.php b/Classes/PHPWord/Writer/Word2007/DocProps.php old mode 100644 new mode 100755 index 529fe615..2740d8da --- a/Classes/PHPWord/Writer/Word2007/DocProps.php +++ b/Classes/PHPWord/Writer/Word2007/DocProps.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Writer/Word2007/Document.php b/Classes/PHPWord/Writer/Word2007/Document.php old mode 100644 new mode 100755 index 4543aeae..6539dd21 --- a/Classes/PHPWord/Writer/Word2007/Document.php +++ b/Classes/PHPWord/Writer/Word2007/Document.php @@ -2,7 +2,7 @@ /** * PHPWord * - * Copyright (c) 2011 PHPWord + * Copyright (c) 2013 PHPWord * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,439 +20,450 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 010 PHPWord + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version Beta 0.6.3, 08.07.2011 + * @version 0.7.0 */ +/** + * Class PHPWord_Writer_Word2007_Document + */ +class PHPWord_Writer_Word2007_Document extends PHPWord_Writer_Word2007_Base +{ -class PHPWord_Writer_Word2007_Document extends PHPWord_Writer_Word2007_Base { - - public function writeDocument(PHPWord $pPHPWord = null) { - // Create XML writer - - 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'); - - // w:document - $objWriter->startElement('w:document'); - - $objWriter->writeAttribute('xmlns:ve', 'http://schemas.openxmlformats.org/markup-compatibility/2006'); - $objWriter->writeAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office'); - $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); - $objWriter->writeAttribute('xmlns:m', 'http://schemas.openxmlformats.org/officeDocument/2006/math'); - $objWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml'); - $objWriter->writeAttribute('xmlns:wp', 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing'); - $objWriter->writeAttribute('xmlns:w10', 'urn:schemas-microsoft-com:office:word'); - $objWriter->writeAttribute('xmlns:w', 'http://schemas.openxmlformats.org/wordprocessingml/2006/main'); - $objWriter->writeAttribute('xmlns:wne', 'http://schemas.microsoft.com/office/word/2006/wordml'); - - $objWriter->startElement('w:body'); - - $_sections = $pPHPWord->getSections(); - $countSections = count($_sections); - $pSection = 0; - - if($countSections > 0) { - foreach($_sections as $section) { - $pSection++; - - $_elements = $section->getElements(); - - foreach($_elements as $element) { - if($element instanceof PHPWord_Section_Text) { - $this->_writeText($objWriter, $element); - } elseif($element instanceof PHPWord_Section_TextRun) { - $this->_writeTextRun($objWriter, $element); - } elseif($element instanceof PHPWord_Section_Link) { - $this->_writeLink($objWriter, $element); - } elseif($element instanceof PHPWord_Section_Title) { - $this->_writeTitle($objWriter, $element); - } elseif($element instanceof PHPWord_Section_TextBreak) { - $this->_writeTextBreak($objWriter); - } elseif($element instanceof PHPWord_Section_PageBreak) { - $this->_writePageBreak($objWriter); - } elseif($element instanceof PHPWord_Section_Table) { - $this->_writeTable($objWriter, $element); - } elseif($element instanceof PHPWord_Section_ListItem) { - $this->_writeListItem($objWriter, $element); - } elseif($element instanceof PHPWord_Section_Image || - $element instanceof PHPWord_Section_MemoryImage) { - $this->_writeImage($objWriter, $element); - } elseif($element instanceof PHPWord_Section_Object) { - $this->_writeObject($objWriter, $element); - } elseif($element instanceof PHPWord_TOC) { - $this->_writeTOC($objWriter); - } - } - - if($pSection == $countSections) { - $this->_writeEndSection($objWriter, $section); - } else { - $this->_writeSection($objWriter, $section); - } - } - } - - $objWriter->endElement(); // End w:body - $objWriter->endElement(); // End w:document + public function writeDocument(PHPWord $pPHPWord = null) + { + // Create XML writer - // Return - return $objWriter->getData(); - } - - private function _writeSection(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section $section) { - $objWriter->startElement('w:p'); - $objWriter->startElement('w:pPr'); - $this->_writeEndSection($objWriter, $section, 3); - $objWriter->endElement(); - $objWriter->endElement(); - } - - private function _writeEndSection(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section $section) { - $_settings = $section->getSettings(); - $_headers = $section->getHeaders(); - $_footer = $section->getFooter(); - $pgSzW = $_settings->getPageSizeW(); - $pgSzH = $_settings->getPageSizeH(); - $orientation = $_settings->getOrientation(); - - $marginTop = $_settings->getMarginTop(); - $marginLeft = $_settings->getMarginLeft(); - $marginRight = $_settings->getMarginRight(); - $marginBottom = $_settings->getMarginBottom(); - - $borders = $_settings->getBorderSize(); - - $objWriter->startElement('w:sectPr'); - - foreach ($_headers as &$_header) { - $rId = $_header->getRelationId(); - $objWriter->startElement('w:headerReference'); - $objWriter->writeAttribute('w:type', $_header->getType()); - $objWriter->writeAttribute('r:id', 'rId'.$rId); - $objWriter->endElement(); - } - - if($section->hasDifferentFirstPage()) { - $objWriter->startElement('w:titlePg'); - $objWriter->endElement(); - } - - if(!is_null($_footer)) { - $rId = $_footer->getRelationId(); - $objWriter->startElement('w:footerReference'); - $objWriter->writeAttribute('w:type', 'default'); - $objWriter->writeAttribute('r:id', 'rId'.$rId); - $objWriter->endElement(); - } - - $objWriter->startElement('w:pgSz'); - $objWriter->writeAttribute('w:w', $pgSzW); - $objWriter->writeAttribute('w:h', $pgSzH); - - if(!is_null($orientation) && strtolower($orientation) != 'portrait') { - $objWriter->writeAttribute('w:orient', $orientation); - } - - $objWriter->endElement(); - - $objWriter->startElement('w:pgMar'); - $objWriter->writeAttribute('w:top', $marginTop); - $objWriter->writeAttribute('w:right', $marginRight); - $objWriter->writeAttribute('w:bottom', $marginBottom); - $objWriter->writeAttribute('w:left', $marginLeft); - $objWriter->writeAttribute('w:header', '720'); - $objWriter->writeAttribute('w:footer', '720'); - $objWriter->writeAttribute('w:gutter', '0'); - $objWriter->endElement(); - - - if(!is_null($borders[0]) || !is_null($borders[1]) || !is_null($borders[2]) || !is_null($borders[3])) { - $borderColor = $_settings->getBorderColor(); - - $objWriter->startElement('w:pgBorders'); - $objWriter->writeAttribute('w:offsetFrom', 'page'); - - if(!is_null($borders[0])) { - $objWriter->startElement('w:top'); - $objWriter->writeAttribute('w:val', 'single'); - $objWriter->writeAttribute('w:sz', $borders[0]); - $objWriter->writeAttribute('w:space', '24'); - $objWriter->writeAttribute('w:color', $borderColor[0]); - $objWriter->endElement(); - } - - if(!is_null($borders[1])) { - $objWriter->startElement('w:left'); - $objWriter->writeAttribute('w:val', 'single'); - $objWriter->writeAttribute('w:sz', $borders[1]); - $objWriter->writeAttribute('w:space', '24'); - $objWriter->writeAttribute('w:color', $borderColor[1]); - $objWriter->endElement(); - } - - if(!is_null($borders[2])) { - $objWriter->startElement('w:right'); - $objWriter->writeAttribute('w:val', 'single'); - $objWriter->writeAttribute('w:sz', $borders[2]); - $objWriter->writeAttribute('w:space', '24'); - $objWriter->writeAttribute('w:color', $borderColor[2]); - $objWriter->endElement(); - } - - if(!is_null($borders[3])) { - $objWriter->startElement('w:bottom'); - $objWriter->writeAttribute('w:val', 'single'); - $objWriter->writeAttribute('w:sz', $borders[3]); - $objWriter->writeAttribute('w:space', '24'); - $objWriter->writeAttribute('w:color', $borderColor[3]); - $objWriter->endElement(); - } - $objWriter->endElement(); - } + 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); + } - - $objWriter->startElement('w:cols'); - $objWriter->writeAttribute('w:space', '720'); - $objWriter->endElement(); - - - $objWriter->endElement(); - } - - private function _writePageBreak(PHPWord_Shared_XMLWriter $objWriter = null) { - $objWriter->startElement('w:p'); - $objWriter->startElement('w:r'); - $objWriter->startElement('w:br'); - $objWriter->writeAttribute('w:type', 'page'); - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); - } - - private function _writeListItem(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_ListItem $listItem) { - $textObject = $listItem->getTextObject(); - $text = $textObject->getText(); + // XML header + $objWriter->startDocument('1.0', 'UTF-8', 'yes'); + + // w:document + $objWriter->startElement('w:document'); + + $objWriter->writeAttribute('xmlns:ve', 'http://schemas.openxmlformats.org/markup-compatibility/2006'); + $objWriter->writeAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office'); + $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); + $objWriter->writeAttribute('xmlns:m', 'http://schemas.openxmlformats.org/officeDocument/2006/math'); + $objWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml'); + $objWriter->writeAttribute('xmlns:wp', 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing'); + $objWriter->writeAttribute('xmlns:w10', 'urn:schemas-microsoft-com:office:word'); + $objWriter->writeAttribute('xmlns:w', 'http://schemas.openxmlformats.org/wordprocessingml/2006/main'); + $objWriter->writeAttribute('xmlns:wne', 'http://schemas.microsoft.com/office/word/2006/wordml'); + + $objWriter->startElement('w:body'); + + $_sections = $pPHPWord->getSections(); + $countSections = count($_sections); + $pSection = 0; + + if ($countSections > 0) { + foreach ($_sections as $section) { + $pSection++; + + $_elements = $section->getElements(); + + foreach ($_elements as $element) { + if ($element instanceof PHPWord_Section_Text) { + $this->_writeText($objWriter, $element); + } elseif ($element instanceof PHPWord_Section_TextRun) { + $this->_writeTextRun($objWriter, $element); + } elseif ($element instanceof PHPWord_Section_Link) { + $this->_writeLink($objWriter, $element); + } elseif ($element instanceof PHPWord_Section_Title) { + $this->_writeTitle($objWriter, $element); + } elseif ($element instanceof PHPWord_Section_TextBreak) { + $this->_writeTextBreak($objWriter); + } elseif ($element instanceof PHPWord_Section_PageBreak) { + $this->_writePageBreak($objWriter); + } elseif ($element instanceof PHPWord_Section_Table) { + $this->_writeTable($objWriter, $element); + } elseif ($element instanceof PHPWord_Section_ListItem) { + $this->_writeListItem($objWriter, $element); + } elseif ($element instanceof PHPWord_Section_Image || + $element instanceof PHPWord_Section_MemoryImage + ) { + $this->_writeImage($objWriter, $element); + } elseif ($element instanceof PHPWord_Section_Object) { + $this->_writeObject($objWriter, $element); + } elseif ($element instanceof PHPWord_TOC) { + $this->_writeTOC($objWriter); + } + } + + if ($pSection == $countSections) { + $this->_writeEndSection($objWriter, $section); + } else { + $this->_writeSection($objWriter, $section); + } + } + } + + $objWriter->endElement(); // End w:body + $objWriter->endElement(); // End w:document + + // Return + return $objWriter->getData(); + } + + private function _writeSection(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section $section) + { + $objWriter->startElement('w:p'); + $objWriter->startElement('w:pPr'); + $this->_writeEndSection($objWriter, $section, 3); + $objWriter->endElement(); + $objWriter->endElement(); + } + + private function _writeEndSection(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section $section) + { + $_settings = $section->getSettings(); + $_headers = $section->getHeaders(); + $_footer = $section->getFooter(); + $pgSzW = $_settings->getPageSizeW(); + $pgSzH = $_settings->getPageSizeH(); + $orientation = $_settings->getOrientation(); + + $marginTop = $_settings->getMarginTop(); + $marginLeft = $_settings->getMarginLeft(); + $marginRight = $_settings->getMarginRight(); + $marginBottom = $_settings->getMarginBottom(); + + $borders = $_settings->getBorderSize(); + + $objWriter->startElement('w:sectPr'); + + foreach ($_headers as &$_header) { + $rId = $_header->getRelationId(); + $objWriter->startElement('w:headerReference'); + $objWriter->writeAttribute('w:type', $_header->getType()); + $objWriter->writeAttribute('r:id', 'rId' . $rId); + $objWriter->endElement(); + } + + if ($section->hasDifferentFirstPage()) { + $objWriter->startElement('w:titlePg'); + $objWriter->endElement(); + } + + if (!is_null($_footer)) { + $rId = $_footer->getRelationId(); + $objWriter->startElement('w:footerReference'); + $objWriter->writeAttribute('w:type', 'default'); + $objWriter->writeAttribute('r:id', 'rId' . $rId); + $objWriter->endElement(); + } + + $objWriter->startElement('w:pgSz'); + $objWriter->writeAttribute('w:w', $pgSzW); + $objWriter->writeAttribute('w:h', $pgSzH); + + if (!is_null($orientation) && strtolower($orientation) != 'portrait') { + $objWriter->writeAttribute('w:orient', $orientation); + } + + $objWriter->endElement(); + + $objWriter->startElement('w:pgMar'); + $objWriter->writeAttribute('w:top', $marginTop); + $objWriter->writeAttribute('w:right', $marginRight); + $objWriter->writeAttribute('w:bottom', $marginBottom); + $objWriter->writeAttribute('w:left', $marginLeft); + $objWriter->writeAttribute('w:header', '720'); + $objWriter->writeAttribute('w:footer', '720'); + $objWriter->writeAttribute('w:gutter', '0'); + $objWriter->endElement(); + + + if (!is_null($borders[0]) || !is_null($borders[1]) || !is_null($borders[2]) || !is_null($borders[3])) { + $borderColor = $_settings->getBorderColor(); + + $objWriter->startElement('w:pgBorders'); + $objWriter->writeAttribute('w:offsetFrom', 'page'); + + if (!is_null($borders[0])) { + $objWriter->startElement('w:top'); + $objWriter->writeAttribute('w:val', 'single'); + $objWriter->writeAttribute('w:sz', $borders[0]); + $objWriter->writeAttribute('w:space', '24'); + $objWriter->writeAttribute('w:color', $borderColor[0]); + $objWriter->endElement(); + } + + if (!is_null($borders[1])) { + $objWriter->startElement('w:left'); + $objWriter->writeAttribute('w:val', 'single'); + $objWriter->writeAttribute('w:sz', $borders[1]); + $objWriter->writeAttribute('w:space', '24'); + $objWriter->writeAttribute('w:color', $borderColor[1]); + $objWriter->endElement(); + } + + if (!is_null($borders[2])) { + $objWriter->startElement('w:right'); + $objWriter->writeAttribute('w:val', 'single'); + $objWriter->writeAttribute('w:sz', $borders[2]); + $objWriter->writeAttribute('w:space', '24'); + $objWriter->writeAttribute('w:color', $borderColor[2]); + $objWriter->endElement(); + } + + if (!is_null($borders[3])) { + $objWriter->startElement('w:bottom'); + $objWriter->writeAttribute('w:val', 'single'); + $objWriter->writeAttribute('w:sz', $borders[3]); + $objWriter->writeAttribute('w:space', '24'); + $objWriter->writeAttribute('w:color', $borderColor[3]); + $objWriter->endElement(); + } + $objWriter->endElement(); + } + + + $objWriter->startElement('w:cols'); + $objWriter->writeAttribute('w:space', '720'); + $objWriter->endElement(); + + + $objWriter->endElement(); + } + + private function _writePageBreak(PHPWord_Shared_XMLWriter $objWriter = null) + { + $objWriter->startElement('w:p'); + $objWriter->startElement('w:r'); + $objWriter->startElement('w:br'); + $objWriter->writeAttribute('w:type', 'page'); + $objWriter->endElement(); + $objWriter->endElement(); + $objWriter->endElement(); + } + + private function _writeListItem(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_ListItem $listItem) + { + $textObject = $listItem->getTextObject(); + $text = $textObject->getText(); $styleParagraph = $textObject->getParagraphStyle(); $SpIsObject = ($styleParagraph instanceof PHPWord_Style_Paragraph) ? true : false; - - $depth = $listItem->getDepth(); - $listType = $listItem->getStyle()->getListType(); - - $objWriter->startElement('w:p'); - $objWriter->startElement('w:pPr'); - - if($SpIsObject) { - $this->_writeParagraphStyle($objWriter, $styleParagraph, true); - } elseif(!$SpIsObject && !is_null($styleParagraph)) { - $objWriter->startElement('w:pStyle'); - $objWriter->writeAttribute('w:val', $styleParagraph); - $objWriter->endElement(); - } - - $objWriter->startElement('w:numPr'); - - $objWriter->startElement('w:ilvl'); - $objWriter->writeAttribute('w:val', $depth); - $objWriter->endElement(); - - $objWriter->startElement('w:numId'); - $objWriter->writeAttribute('w:val', $listType); - $objWriter->endElement(); - - $objWriter->endElement(); - $objWriter->endElement(); - - $this->_writeText($objWriter, $textObject, true); - - $objWriter->endElement(); - } - - protected function _writeObject(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Object $object) { - $rIdObject = $object->getRelationId(); - $rIdImage = $object->getImageRelationId(); - $shapeId = md5($rIdObject.'_'.$rIdImage); - - $objectId = $object->getObjectId(); - - $style = $object->getStyle(); - $width = $style->getWidth(); - $height = $style->getHeight(); - $align = $style->getAlign(); - - - $objWriter->startElement('w:p'); - - if(!is_null($align)) { - $objWriter->startElement('w:pPr'); - $objWriter->startElement('w:jc'); - $objWriter->writeAttribute('w:val', $align); - $objWriter->endElement(); - $objWriter->endElement(); - } - - $objWriter->startElement('w:r'); - - $objWriter->startElement('w:object'); - $objWriter->writeAttribute('w:dxaOrig', '249'); - $objWriter->writeAttribute('w:dyaOrig', '160'); - - $objWriter->startElement('v:shape'); - $objWriter->writeAttribute('id', $shapeId); - $objWriter->writeAttribute('type', '#_x0000_t75'); - $objWriter->writeAttribute('style', 'width:104px;height:67px'); - $objWriter->writeAttribute('o:ole', ''); - - $objWriter->startElement('v:imagedata'); - $objWriter->writeAttribute('r:id', 'rId'.$rIdImage); - $objWriter->writeAttribute('o:title', ''); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->startElement('o:OLEObject'); - $objWriter->writeAttribute('Type', 'Embed'); - $objWriter->writeAttribute('ProgID', 'Package'); - $objWriter->writeAttribute('ShapeID', $shapeId); - $objWriter->writeAttribute('DrawAspect', 'Icon'); - $objWriter->writeAttribute('ObjectID', '_'.$objectId); - $objWriter->writeAttribute('r:id', 'rId'.$rIdObject); - $objWriter->endElement(); - - $objWriter->endElement(); - - $objWriter->endElement(); // w:r - - $objWriter->endElement(); // w:p - } - - private function _writeTOC(PHPWord_Shared_XMLWriter $objWriter = null) { - $titles = PHPWord_TOC::getTitles(); - $styleFont = PHPWord_TOC::getStyleFont(); - - $styleTOC = PHPWord_TOC::getStyleTOC(); - $fIndent = $styleTOC->getIndent(); - $tabLeader = $styleTOC->getTabLeader(); - $tabPos = $styleTOC->getTabPos(); - - $isObject = ($styleFont instanceof PHPWord_Style_Font) ? true : false; - - for($i=0; $istartElement('w:p'); - - $objWriter->startElement('w:pPr'); - - if($isObject && !is_null($styleFont->getParagraphStyle())) { - $this->_writeParagraphStyle($objWriter, $styleFont->getParagraphStyle()); - } - - if($indent > 0) { - $objWriter->startElement('w:ind'); - $objWriter->writeAttribute('w:left', $indent); - $objWriter->endElement(); - } - - if(!empty($styleFont) && !$isObject) { - $objWriter->startElement('w:pPr'); - $objWriter->startElement('w:pStyle'); - $objWriter->writeAttribute('w:val', $styleFont); - $objWriter->endElement(); - $objWriter->endElement(); - } - - $objWriter->startElement('w:tabs'); - $objWriter->startElement('w:tab'); - $objWriter->writeAttribute('w:val', 'right'); - if(!empty($tabLeader)) { - $objWriter->writeAttribute('w:leader', $tabLeader); - } - $objWriter->writeAttribute('w:pos', $tabPos); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->endElement(); // w:pPr - - - if($i == 0) { - $objWriter->startElement('w:r'); - $objWriter->startElement('w:fldChar'); - $objWriter->writeAttribute('w:fldCharType', 'begin'); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->startElement('w:r'); - $objWriter->startElement('w:instrText'); - $objWriter->writeAttribute('xml:space', 'preserve'); - $objWriter->writeRaw('TOC \o "1-9" \h \z \u'); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->startElement('w:r'); - $objWriter->startElement('w:fldChar'); - $objWriter->writeAttribute('w:fldCharType', 'separate'); - $objWriter->endElement(); - $objWriter->endElement(); - } - - $objWriter->startElement('w:hyperlink'); - $objWriter->writeAttribute('w:anchor', $title['anchor']); - $objWriter->writeAttribute('w:history', '1'); - - $objWriter->startElement('w:r'); - - if($isObject) { - $this->_writeTextStyle($objWriter, $styleFont); - } - - $objWriter->startElement('w:t'); - $objWriter->writeRaw($title['text']); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->startElement('w:r'); - $objWriter->writeElement('w:tab', null); - $objWriter->endElement(); - - $objWriter->startElement('w:r'); - $objWriter->startElement('w:fldChar'); - $objWriter->writeAttribute('w:fldCharType', 'begin'); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->startElement('w:r'); - $objWriter->startElement('w:instrText'); - $objWriter->writeAttribute('xml:space', 'preserve'); - $objWriter->writeRaw('PAGEREF '.$title['anchor'].' \h'); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->startElement('w:r'); - $objWriter->startElement('w:fldChar'); - $objWriter->writeAttribute('w:fldCharType', 'end'); - $objWriter->endElement(); - $objWriter->endElement(); - - $objWriter->endElement(); // w:hyperlink - - $objWriter->endElement(); // w:p - } - - $objWriter->startElement('w:p'); - $objWriter->startElement('w:r'); - $objWriter->startElement('w:fldChar'); - $objWriter->writeAttribute('w:fldCharType', 'end'); - $objWriter->endElement(); - $objWriter->endElement(); - $objWriter->endElement(); - } + + $depth = $listItem->getDepth(); + $listType = $listItem->getStyle()->getListType(); + + $objWriter->startElement('w:p'); + $objWriter->startElement('w:pPr'); + + if ($SpIsObject) { + $this->_writeParagraphStyle($objWriter, $styleParagraph, true); + } elseif (!$SpIsObject && !is_null($styleParagraph)) { + $objWriter->startElement('w:pStyle'); + $objWriter->writeAttribute('w:val', $styleParagraph); + $objWriter->endElement(); + } + + $objWriter->startElement('w:numPr'); + + $objWriter->startElement('w:ilvl'); + $objWriter->writeAttribute('w:val', $depth); + $objWriter->endElement(); + + $objWriter->startElement('w:numId'); + $objWriter->writeAttribute('w:val', $listType); + $objWriter->endElement(); + + $objWriter->endElement(); + $objWriter->endElement(); + + $this->_writeText($objWriter, $textObject, true); + + $objWriter->endElement(); + } + + protected function _writeObject(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Object $object) + { + $rIdObject = $object->getRelationId(); + $rIdImage = $object->getImageRelationId(); + $shapeId = md5($rIdObject . '_' . $rIdImage); + + $objectId = $object->getObjectId(); + + $style = $object->getStyle(); + $width = $style->getWidth(); + $height = $style->getHeight(); + $align = $style->getAlign(); + + + $objWriter->startElement('w:p'); + + if (!is_null($align)) { + $objWriter->startElement('w:pPr'); + $objWriter->startElement('w:jc'); + $objWriter->writeAttribute('w:val', $align); + $objWriter->endElement(); + $objWriter->endElement(); + } + + $objWriter->startElement('w:r'); + + $objWriter->startElement('w:object'); + $objWriter->writeAttribute('w:dxaOrig', '249'); + $objWriter->writeAttribute('w:dyaOrig', '160'); + + $objWriter->startElement('v:shape'); + $objWriter->writeAttribute('id', $shapeId); + $objWriter->writeAttribute('type', '#_x0000_t75'); + $objWriter->writeAttribute('style', 'width:104px;height:67px'); + $objWriter->writeAttribute('o:ole', ''); + + $objWriter->startElement('v:imagedata'); + $objWriter->writeAttribute('r:id', 'rId' . $rIdImage); + $objWriter->writeAttribute('o:title', ''); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->startElement('o:OLEObject'); + $objWriter->writeAttribute('Type', 'Embed'); + $objWriter->writeAttribute('ProgID', 'Package'); + $objWriter->writeAttribute('ShapeID', $shapeId); + $objWriter->writeAttribute('DrawAspect', 'Icon'); + $objWriter->writeAttribute('ObjectID', '_' . $objectId); + $objWriter->writeAttribute('r:id', 'rId' . $rIdObject); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); // w:r + + $objWriter->endElement(); // w:p + } + + private function _writeTOC(PHPWord_Shared_XMLWriter $objWriter = null) + { + $titles = PHPWord_TOC::getTitles(); + $styleFont = PHPWord_TOC::getStyleFont(); + + $styleTOC = PHPWord_TOC::getStyleTOC(); + $fIndent = $styleTOC->getIndent(); + $tabLeader = $styleTOC->getTabLeader(); + $tabPos = $styleTOC->getTabPos(); + + $isObject = ($styleFont instanceof PHPWord_Style_Font) ? true : false; + + for ($i = 0; $i < count($titles); $i++) { + $title = $titles[$i]; + $indent = ($title['depth'] - 1) * $fIndent; + + $objWriter->startElement('w:p'); + + $objWriter->startElement('w:pPr'); + + if ($isObject && !is_null($styleFont->getParagraphStyle())) { + $this->_writeParagraphStyle($objWriter, $styleFont->getParagraphStyle()); + } + + if ($indent > 0) { + $objWriter->startElement('w:ind'); + $objWriter->writeAttribute('w:left', $indent); + $objWriter->endElement(); + } + + if (!empty($styleFont) && !$isObject) { + $objWriter->startElement('w:pPr'); + $objWriter->startElement('w:pStyle'); + $objWriter->writeAttribute('w:val', $styleFont); + $objWriter->endElement(); + $objWriter->endElement(); + } + + $objWriter->startElement('w:tabs'); + $objWriter->startElement('w:tab'); + $objWriter->writeAttribute('w:val', 'right'); + if (!empty($tabLeader)) { + $objWriter->writeAttribute('w:leader', $tabLeader); + } + $objWriter->writeAttribute('w:pos', $tabPos); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->endElement(); // w:pPr + + + if ($i == 0) { + $objWriter->startElement('w:r'); + $objWriter->startElement('w:fldChar'); + $objWriter->writeAttribute('w:fldCharType', 'begin'); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('w:r'); + $objWriter->startElement('w:instrText'); + $objWriter->writeAttribute('xml:space', 'preserve'); + $objWriter->writeRaw('TOC \o "1-9" \h \z \u'); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('w:r'); + $objWriter->startElement('w:fldChar'); + $objWriter->writeAttribute('w:fldCharType', 'separate'); + $objWriter->endElement(); + $objWriter->endElement(); + } + + $objWriter->startElement('w:hyperlink'); + $objWriter->writeAttribute('w:anchor', $title['anchor']); + $objWriter->writeAttribute('w:history', '1'); + + $objWriter->startElement('w:r'); + + if ($isObject) { + $this->_writeTextStyle($objWriter, $styleFont); + } + + $objWriter->startElement('w:t'); + $objWriter->writeRaw($title['text']); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('w:r'); + $objWriter->writeElement('w:tab', null); + $objWriter->endElement(); + + $objWriter->startElement('w:r'); + $objWriter->startElement('w:fldChar'); + $objWriter->writeAttribute('w:fldCharType', 'begin'); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('w:r'); + $objWriter->startElement('w:instrText'); + $objWriter->writeAttribute('xml:space', 'preserve'); + $objWriter->writeRaw('PAGEREF ' . $title['anchor'] . ' \h'); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->startElement('w:r'); + $objWriter->startElement('w:fldChar'); + $objWriter->writeAttribute('w:fldCharType', 'end'); + $objWriter->endElement(); + $objWriter->endElement(); + + $objWriter->endElement(); // w:hyperlink + + $objWriter->endElement(); // w:p + } + + $objWriter->startElement('w:p'); + $objWriter->startElement('w:r'); + $objWriter->startElement('w:fldChar'); + $objWriter->writeAttribute('w:fldCharType', 'end'); + $objWriter->endElement(); + $objWriter->endElement(); + $objWriter->endElement(); + } } diff --git a/Classes/PHPWord/Writer/Word2007/DocumentRels.php b/Classes/PHPWord/Writer/Word2007/DocumentRels.php old mode 100644 new mode 100755 index a19084a9..b284f0b9 --- a/Classes/PHPWord/Writer/Word2007/DocumentRels.php +++ b/Classes/PHPWord/Writer/Word2007/DocumentRels.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Writer/Word2007/Footer.php b/Classes/PHPWord/Writer/Word2007/Footer.php old mode 100644 new mode 100755 index d6e03a63..363e0531 --- a/Classes/PHPWord/Writer/Word2007/Footer.php +++ b/Classes/PHPWord/Writer/Word2007/Footer.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Writer/Word2007/Header.php b/Classes/PHPWord/Writer/Word2007/Header.php old mode 100644 new mode 100755 index 97d9a7b4..4f4eacd8 --- a/Classes/PHPWord/Writer/Word2007/Header.php +++ b/Classes/PHPWord/Writer/Word2007/Header.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Writer/Word2007/Rels.php b/Classes/PHPWord/Writer/Word2007/Rels.php old mode 100644 new mode 100755 index 39d37405..6d72839b --- a/Classes/PHPWord/Writer/Word2007/Rels.php +++ b/Classes/PHPWord/Writer/Word2007/Rels.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Writer/Word2007/Styles.php b/Classes/PHPWord/Writer/Word2007/Styles.php old mode 100644 new mode 100755 index 2253d995..71aca637 --- a/Classes/PHPWord/Writer/Word2007/Styles.php +++ b/Classes/PHPWord/Writer/Word2007/Styles.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/Classes/PHPWord/Writer/Word2007/WriterPart.php b/Classes/PHPWord/Writer/Word2007/WriterPart.php old mode 100644 new mode 100755 index 9291d28c..a6168a84 --- a/Classes/PHPWord/Writer/Word2007/WriterPart.php +++ b/Classes/PHPWord/Writer/Word2007/WriterPart.php @@ -20,7 +20,7 @@ * * @category PHPWord * @package PHPWord - * @copyright Copyright (c) 2013 PHPWord (http://www.codeplex.com/PHPWord) + * @copyright Copyright (c) 2013 PHPWord * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 0.7.0 */ diff --git a/README.md b/README.md old mode 100644 new mode 100755 index b23011b5..21c15959 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ $objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007'); $objWriter->save('helloWorld.docx'); ``` -## Image +## Images You can add images easily using the following example. diff --git a/changelog.txt b/changelog.txt old mode 100644 new mode 100755 index 9770653f..13dfb27e --- a/changelog.txt +++ b/changelog.txt @@ -22,7 +22,7 @@ * @version ##VERSION##, ##DATE## ************************************************************************************** -Fixed in branch for release 0.7 : +Fixed in branch for release 0.7.0 : - Bugfix: (RomanSyroeshko) GH-32 - "Warning: Invalid error type specified in ...\PHPWord.php on line 226" is thrown when the specified template file is not found - Bugfix: (RomanSyroeshko) GH-34 - PHPWord_Shared_String.IsUTF8 returns FALSE for Cyrillic UTF-8 input - Bugfix: (RomanSyroeshko) GH-38 - Temporary files naming logic in PHPWord_Template can lead to a collision @@ -38,5 +38,4 @@ Fixed in branch for release 0.7 : - General: (Progi1984) - Added PHPWord_Exception and exception when could not copy the template - General: (Progi1984) - IMPROVED : Moved examples out of Classes directory - General: (Esmeraldo) CP-49 - IMPROVED : Advanced string replace in setValue for Template -- Feature: (gavroche) Added composer file -- Feature: (gavroche) Added support for image wrapping style +- Feature: (gavroche) - Added support for image wrapping style diff --git a/samples/Sample_01_SimpleText.php b/samples/Sample_01_SimpleText.php old mode 100644 new mode 100755 index d421c37d..b2d6593a --- a/samples/Sample_01_SimpleText.php +++ b/samples/Sample_01_SimpleText.php @@ -49,4 +49,3 @@ echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 102 // Echo done echo date('H:i:s') , " Done writing file" , EOL; -?> \ No newline at end of file diff --git a/samples/Sample_02_TabStops.php b/samples/Sample_02_TabStops.php old mode 100644 new mode 100755 index 3c4d3841..177e8598 --- a/samples/Sample_02_TabStops.php +++ b/samples/Sample_02_TabStops.php @@ -60,5 +60,4 @@ $objWriter->save(str_replace('.php', '.rtf', __FILE__)); 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 +echo date('H:i:s') , ' Done writing file' , EOL; \ No newline at end of file diff --git a/samples/old/AdvancedTable.php b/samples/old/AdvancedTable.php old mode 100644 new mode 100755 index e83c4e98..021cd920 --- a/samples/old/AdvancedTable.php +++ b/samples/old/AdvancedTable.php @@ -50,4 +50,3 @@ for($i = 1; $i <= 10; $i++) { // Save File $objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007'); $objWriter->save('AdvancedTable.docx'); -?> \ No newline at end of file diff --git a/samples/old/BasicTable.php b/samples/old/BasicTable.php old mode 100644 new mode 100755 index 9e05712e..6bd8336a --- a/samples/old/BasicTable.php +++ b/samples/old/BasicTable.php @@ -23,4 +23,3 @@ for($r = 1; $r <= 10; $r++) { // Loop through rows // Save File $objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007'); $objWriter->save('BasicTable.docx'); -?> \ No newline at end of file diff --git a/samples/old/HeaderFooter.php b/samples/old/HeaderFooter.php old mode 100644 new mode 100755 index addb3d8d..ae3ce5ac --- a/samples/old/HeaderFooter.php +++ b/samples/old/HeaderFooter.php @@ -54,4 +54,3 @@ $section2->addText('Some text...'); // Save File $objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007'); $objWriter->save('HeaderFooter.docx'); -?> \ No newline at end of file diff --git a/samples/old/Image.php b/samples/old/Image.php old mode 100644 new mode 100755 index 6316783f..5018e206 --- a/samples/old/Image.php +++ b/samples/old/Image.php @@ -21,4 +21,3 @@ $section->addImage('_mars.jpg', array('width'=>100, 'height'=>100, 'align'=>'rig // Save File $objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007'); $objWriter->save('Image.docx'); -?> \ No newline at end of file diff --git a/samples/old/Link.php b/samples/old/Link.php old mode 100644 new mode 100755 index 5cd98bb8..8ad5575e --- a/samples/old/Link.php +++ b/samples/old/Link.php @@ -21,4 +21,3 @@ $section->addLink('http://www.yahoo.com', null, 'myOwnLinkStyle'); // Save File $objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007'); $objWriter->save('Link.docx'); -?> \ No newline at end of file diff --git a/samples/old/ListItem.php b/samples/old/ListItem.php old mode 100644 new mode 100755 index 2e88e853..e0125980 --- a/samples/old/ListItem.php +++ b/samples/old/ListItem.php @@ -44,4 +44,3 @@ $section->addListItem('List Item 7', 0, 'myOwnStyle', $listStyle, 'P-Style'); // Save File $objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007'); $objWriter->save('ListItem.docx'); -?> \ No newline at end of file diff --git a/samples/old/Object.php b/samples/old/Object.php old mode 100644 new mode 100755 index fb2f6ca9..b54df971 --- a/samples/old/Object.php +++ b/samples/old/Object.php @@ -17,4 +17,3 @@ $section->addObject('_sheet.xls'); // Save File $objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007'); $objWriter->save('Object.docx'); -?> diff --git a/samples/old/Section.php b/samples/old/Section.php old mode 100644 new mode 100755 index 6c31e35b..875e9fc2 --- a/samples/old/Section.php +++ b/samples/old/Section.php @@ -23,4 +23,3 @@ $section->addText('This section uses other margins.'); // Save File $objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007'); $objWriter->save('Section.docx'); -?> \ No newline at end of file diff --git a/samples/old/Template.php b/samples/old/Template.php old mode 100644 new mode 100755 index f4f5c156..1b4472b1 --- a/samples/old/Template.php +++ b/samples/old/Template.php @@ -20,4 +20,3 @@ $document->setValue('weekday', date('l')); $document->setValue('time', date('H:i')); $document->save('Solarsystem.docx'); -?> \ No newline at end of file diff --git a/samples/old/Textrun.php b/samples/old/Textrun.php old mode 100644 new mode 100755 index 34dd6b50..3fa12d97 --- a/samples/old/Textrun.php +++ b/samples/old/Textrun.php @@ -29,4 +29,3 @@ $textrun->addLink('http://www.bing.com', null, 'NLink'); // Save File $objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007'); $objWriter->save('Textrun.docx'); -?> \ No newline at end of file diff --git a/samples/old/TitleTOC.php b/samples/old/TitleTOC.php old mode 100644 new mode 100755 index 40135658..376d26e8 --- a/samples/old/TitleTOC.php +++ b/samples/old/TitleTOC.php @@ -46,4 +46,3 @@ echo 'Note: The pagenumbers in the TOC doesnt refresh automatically.'; // Save File $objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007'); $objWriter->save('TitleTOC.docx'); -?> diff --git a/samples/old/Watermark.php b/samples/old/Watermark.php old mode 100644 new mode 100755 index 6402e245..319221c1 --- a/samples/old/Watermark.php +++ b/samples/old/Watermark.php @@ -18,4 +18,3 @@ $section->addText('The header reference to the current section includes a waterm // Save File $objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007'); $objWriter->save('Watermark.docx'); -?> \ No newline at end of file diff --git a/test/PHPWord/Tests/ImageTest.php b/test/PHPWord/Tests/ImageTest.php old mode 100644 new mode 100755 index c1ee9afd..81b24677 --- a/test/PHPWord/Tests/ImageTest.php +++ b/test/PHPWord/Tests/ImageTest.php @@ -4,8 +4,6 @@ namespace PHPWord\Tests; use PHPUnit_Framework_TestCase; use PHPWord; -require_once __DIR__ . '/../../../src/PHPWord.php'; - class ImageTest extends PHPUnit_Framework_TestCase { public function tearDown() diff --git a/test/bootstrap.php b/test/bootstrap.php old mode 100644 new mode 100755 index 0ca799f6..b03b68ce --- a/test/bootstrap.php +++ b/test/bootstrap.php @@ -2,7 +2,7 @@ date_default_timezone_set('UTC'); -require_once __DIR__ . "/../src/PHPWord/Autoloader.php"; +require_once __DIR__ . "/../Classes/PHPWord/Autoloader.php"; PHPWord_Autoloader::Register(); require_once __DIR__ . "/PHPWord/TestHelper.php";