Formatted PHP code toward PSR-2 compliance
This commit is contained in:
parent
3f7ed20a28
commit
b6c33c8931
326
src/PHPWord.php
326
src/PHPWord.php
|
|
@ -26,7 +26,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** PHPWORD_BASE_PATH */
|
/** PHPWORD_BASE_PATH */
|
||||||
if(!defined('PHPWORD_BASE_PATH')) {
|
if (!defined('PHPWORD_BASE_PATH')) {
|
||||||
define('PHPWORD_BASE_PATH', dirname(__FILE__) . '/');
|
define('PHPWORD_BASE_PATH', dirname(__FILE__) . '/');
|
||||||
require PHPWORD_BASE_PATH . 'PHPWord/Autoloader.php';
|
require PHPWORD_BASE_PATH . 'PHPWord/Autoloader.php';
|
||||||
PHPWord_Autoloader::Register();
|
PHPWord_Autoloader::Register();
|
||||||
|
|
@ -40,177 +40,193 @@ if(!defined('PHPWORD_BASE_PATH')) {
|
||||||
* @package PHPWord
|
* @package PHPWord
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord {
|
class PHPWord
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Document properties
|
* Document properties
|
||||||
*
|
*
|
||||||
* @var PHPWord_DocumentProperties
|
* @var PHPWord_DocumentProperties
|
||||||
*/
|
*/
|
||||||
private $_properties;
|
private $_properties;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default Font Name
|
* Default Font Name
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_defaultFontName;
|
private $_defaultFontName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default Font Size
|
* Default Font Size
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_defaultFontSize;
|
private $_defaultFontSize;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Collection of section elements
|
* Collection of section elements
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private $_sectionCollection = array();
|
private $_sectionCollection = array();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new PHPWord Document
|
* Create a new PHPWord Document
|
||||||
*/
|
*/
|
||||||
public function __construct() {
|
public function __construct()
|
||||||
$this->_properties = new PHPWord_DocumentProperties();
|
{
|
||||||
$this->_defaultFontName = 'Arial';
|
$this->_properties = new PHPWord_DocumentProperties();
|
||||||
$this->_defaultFontSize = 20;
|
$this->_defaultFontName = 'Arial';
|
||||||
}
|
$this->_defaultFontSize = 20;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get properties
|
* Get properties
|
||||||
* @return PHPWord_DocumentProperties
|
* @return PHPWord_DocumentProperties
|
||||||
*/
|
*/
|
||||||
public function getProperties() {
|
public function getProperties()
|
||||||
return $this->_properties;
|
{
|
||||||
}
|
return $this->_properties;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set properties
|
* Set properties
|
||||||
*
|
*
|
||||||
* @param PHPWord_DocumentProperties $value
|
* @param PHPWord_DocumentProperties $value
|
||||||
* @return PHPWord
|
* @return PHPWord
|
||||||
*/
|
*/
|
||||||
public function setProperties(PHPWord_DocumentProperties $value) {
|
public function setProperties(PHPWord_DocumentProperties $value)
|
||||||
$this->_properties = $value;
|
{
|
||||||
return $this;
|
$this->_properties = $value;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new Section
|
* Create a new Section
|
||||||
*
|
*
|
||||||
* @param PHPWord_Section_Settings $settings
|
* @param PHPWord_Section_Settings $settings
|
||||||
* @return PHPWord_Section
|
* @return PHPWord_Section
|
||||||
*/
|
*/
|
||||||
public function createSection($settings = null) {
|
public function createSection($settings = null)
|
||||||
$sectionCount = $this->_countSections() + 1;
|
{
|
||||||
|
$sectionCount = $this->_countSections() + 1;
|
||||||
|
|
||||||
$section = new PHPWord_Section($sectionCount, $settings);
|
$section = new PHPWord_Section($sectionCount, $settings);
|
||||||
$this->_sectionCollection[] = $section;
|
$this->_sectionCollection[] = $section;
|
||||||
return $section;
|
return $section;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get default Font name
|
* Get default Font name
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getDefaultFontName() {
|
public function getDefaultFontName()
|
||||||
return $this->_defaultFontName;
|
{
|
||||||
}
|
return $this->_defaultFontName;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set default Font name
|
* Set default Font name
|
||||||
* @param string $pValue
|
* @param string $pValue
|
||||||
*/
|
*/
|
||||||
public function setDefaultFontName($pValue) {
|
public function setDefaultFontName($pValue)
|
||||||
$this->_defaultFontName = $pValue;
|
{
|
||||||
}
|
$this->_defaultFontName = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get default Font size
|
* Get default Font size
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getDefaultFontSize() {
|
public function getDefaultFontSize()
|
||||||
return $this->_defaultFontSize;
|
{
|
||||||
}
|
return $this->_defaultFontSize;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set default Font size
|
* Set default Font size
|
||||||
* @param int $pValue
|
* @param int $pValue
|
||||||
*/
|
*/
|
||||||
public function setDefaultFontSize($pValue) {
|
public function setDefaultFontSize($pValue)
|
||||||
$pValue = $pValue * 2;
|
{
|
||||||
$this->_defaultFontSize = $pValue;
|
$pValue = $pValue * 2;
|
||||||
}
|
$this->_defaultFontSize = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a paragraph style definition to styles.xml
|
* Adds a paragraph style definition to styles.xml
|
||||||
*
|
*
|
||||||
* @param $styleName string
|
* @param $styleName string
|
||||||
* @param $styles array
|
* @param $styles array
|
||||||
*/
|
*/
|
||||||
public function addParagraphStyle($styleName, $styles) {
|
public function addParagraphStyle($styleName, $styles)
|
||||||
PHPWord_Style::addParagraphStyle($styleName, $styles);
|
{
|
||||||
}
|
PHPWord_Style::addParagraphStyle($styleName, $styles);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a font style definition to styles.xml
|
* Adds a font style definition to styles.xml
|
||||||
*
|
*
|
||||||
* @param $styleName string
|
* @param $styleName string
|
||||||
* @param $styles array
|
* @param $styles array
|
||||||
*/
|
*/
|
||||||
public function addFontStyle($styleName, $styleFont, $styleParagraph = null) {
|
public function addFontStyle($styleName, $styleFont, $styleParagraph = null)
|
||||||
PHPWord_Style::addFontStyle($styleName, $styleFont, $styleParagraph);
|
{
|
||||||
}
|
PHPWord_Style::addFontStyle($styleName, $styleFont, $styleParagraph);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a table style definition to styles.xml
|
* Adds a table style definition to styles.xml
|
||||||
*
|
*
|
||||||
* @param $styleName string
|
* @param $styleName string
|
||||||
* @param $styles array
|
* @param $styles array
|
||||||
*/
|
*/
|
||||||
public function addTableStyle($styleName, $styleTable, $styleFirstRow = null) {
|
public function addTableStyle($styleName, $styleTable, $styleFirstRow = null)
|
||||||
PHPWord_Style::addTableStyle($styleName, $styleTable, $styleFirstRow);
|
{
|
||||||
}
|
PHPWord_Style::addTableStyle($styleName, $styleTable, $styleFirstRow);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a heading style definition to styles.xml
|
* Adds a heading style definition to styles.xml
|
||||||
*
|
*
|
||||||
* @param $titleCount int
|
* @param $titleCount int
|
||||||
* @param $styles array
|
* @param $styles array
|
||||||
*/
|
*/
|
||||||
public function addTitleStyle($titleCount, $styleFont, $styleParagraph = null) {
|
public function addTitleStyle($titleCount, $styleFont, $styleParagraph = null)
|
||||||
PHPWord_Style::addTitleStyle($titleCount, $styleFont, $styleParagraph);
|
{
|
||||||
}
|
PHPWord_Style::addTitleStyle($titleCount, $styleFont, $styleParagraph);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a hyperlink style to styles.xml
|
* Adds a hyperlink style to styles.xml
|
||||||
*
|
*
|
||||||
* @param $styleName string
|
* @param $styleName string
|
||||||
* @param $styles array
|
* @param $styles array
|
||||||
*/
|
*/
|
||||||
public function addLinkStyle($styleName, $styles) {
|
public function addLinkStyle($styleName, $styles)
|
||||||
PHPWord_Style::addLinkStyle($styleName, $styles);
|
{
|
||||||
}
|
PHPWord_Style::addLinkStyle($styleName, $styles);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get sections
|
* Get sections
|
||||||
* @return PHPWord_Section[]
|
* @return PHPWord_Section[]
|
||||||
*/
|
*/
|
||||||
public function getSections() {
|
public function getSections()
|
||||||
return $this->_sectionCollection;
|
{
|
||||||
}
|
return $this->_sectionCollection;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get section count
|
* Get section count
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
private function _countSections() {
|
private function _countSections()
|
||||||
return count($this->_sectionCollection);
|
{
|
||||||
}
|
return count($this->_sectionCollection);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load a Template File
|
* Load a Template File
|
||||||
|
|
@ -218,13 +234,13 @@ class PHPWord {
|
||||||
* @param string $strFilename
|
* @param string $strFilename
|
||||||
* @return PHPWord_Template
|
* @return PHPWord_Template
|
||||||
*/
|
*/
|
||||||
public function loadTemplate($strFilename) {
|
public function loadTemplate($strFilename)
|
||||||
if(file_exists($strFilename)) {
|
{
|
||||||
|
if (file_exists($strFilename)) {
|
||||||
$template = new PHPWord_Template($strFilename);
|
$template = new PHPWord_Template($strFilename);
|
||||||
return $template;
|
return $template;
|
||||||
} else {
|
} else {
|
||||||
trigger_error('Template file '.$strFilename.' not found.', E_ERROR);
|
trigger_error('Template file ' . $strFilename . ' not found.', E_ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -27,22 +27,23 @@
|
||||||
|
|
||||||
class PHPWord_Autoloader
|
class PHPWord_Autoloader
|
||||||
{
|
{
|
||||||
public static function Register() {
|
public static function Register()
|
||||||
return spl_autoload_register(array('PHPWord_Autoloader', 'Load'));
|
{
|
||||||
}
|
return spl_autoload_register(array('PHPWord_Autoloader', 'Load'));
|
||||||
|
}
|
||||||
|
|
||||||
public static function Load($strObjectName) {
|
public static function Load($strObjectName)
|
||||||
if((class_exists($strObjectName)) || (strpos($strObjectName, 'PHPWord') === false)) {
|
{
|
||||||
return false;
|
if ((class_exists($strObjectName)) || (strpos($strObjectName, 'PHPWord') === false)) {
|
||||||
}
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
$strObjectFilePath = PHPWORD_BASE_PATH . str_replace('_', '/', $strObjectName) . '.php';
|
$strObjectFilePath = PHPWORD_BASE_PATH . str_replace('_', '/', $strObjectName) . '.php';
|
||||||
|
|
||||||
if((file_exists($strObjectFilePath) === false) || (is_readable($strObjectFilePath) === false)) {
|
if ((file_exists($strObjectFilePath) === false) || (is_readable($strObjectFilePath) === false)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
require($strObjectFilePath);
|
require($strObjectFilePath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -33,298 +33,319 @@
|
||||||
* @package PHPWord
|
* @package PHPWord
|
||||||
* @copyright Copyright (c) 2009 - 2011 PHPWord (http://www.codeplex.com/PHPWord)
|
* @copyright Copyright (c) 2009 - 2011 PHPWord (http://www.codeplex.com/PHPWord)
|
||||||
*/
|
*/
|
||||||
class PHPWord_DocumentProperties {
|
class PHPWord_DocumentProperties
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creator
|
* Creator
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_creator;
|
private $_creator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LastModifiedBy
|
* LastModifiedBy
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_lastModifiedBy;
|
private $_lastModifiedBy;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created
|
* Created
|
||||||
*
|
*
|
||||||
* @var datetime
|
* @var datetime
|
||||||
*/
|
*/
|
||||||
private $_created;
|
private $_created;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Modified
|
* Modified
|
||||||
*
|
*
|
||||||
* @var datetime
|
* @var datetime
|
||||||
*/
|
*/
|
||||||
private $_modified;
|
private $_modified;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Title
|
* Title
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_title;
|
private $_title;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description
|
* Description
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_description;
|
private $_description;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Subject
|
* Subject
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_subject;
|
private $_subject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Keywords
|
* Keywords
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_keywords;
|
private $_keywords;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Category
|
* Category
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_category;
|
private $_category;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Company
|
* Company
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_company;
|
private $_company;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create new PHPWord_DocumentProperties
|
* Create new PHPWord_DocumentProperties
|
||||||
*/
|
*/
|
||||||
public function __construct() {
|
public function __construct()
|
||||||
$this->_creator = '';
|
{
|
||||||
$this->_lastModifiedBy = $this->_creator;
|
$this->_creator = '';
|
||||||
$this->_created = time();
|
$this->_lastModifiedBy = $this->_creator;
|
||||||
$this->_modified = time();
|
$this->_created = time();
|
||||||
$this->_title = '';
|
$this->_modified = time();
|
||||||
$this->_subject = '';
|
$this->_title = '';
|
||||||
$this->_description = '';
|
$this->_subject = '';
|
||||||
$this->_keywords = '';
|
$this->_description = '';
|
||||||
$this->_category = '';
|
$this->_keywords = '';
|
||||||
$this->_company = '';
|
$this->_category = '';
|
||||||
}
|
$this->_company = '';
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Creator
|
* Get Creator
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getCreator() {
|
public function getCreator()
|
||||||
return $this->_creator;
|
{
|
||||||
}
|
return $this->_creator;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Creator
|
* Set Creator
|
||||||
*
|
*
|
||||||
* @param string $pValue
|
* @param string $pValue
|
||||||
* @return PHPWord_DocumentProperties
|
* @return PHPWord_DocumentProperties
|
||||||
*/
|
*/
|
||||||
public function setCreator($pValue = '') {
|
public function setCreator($pValue = '')
|
||||||
$this->_creator = $pValue;
|
{
|
||||||
return $this;
|
$this->_creator = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Last Modified By
|
* Get Last Modified By
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getLastModifiedBy() {
|
public function getLastModifiedBy()
|
||||||
return $this->_lastModifiedBy;
|
{
|
||||||
}
|
return $this->_lastModifiedBy;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Last Modified By
|
* Set Last Modified By
|
||||||
*
|
*
|
||||||
* @param string $pValue
|
* @param string $pValue
|
||||||
* @return PHPWord_DocumentProperties
|
* @return PHPWord_DocumentProperties
|
||||||
*/
|
*/
|
||||||
public function setLastModifiedBy($pValue = '') {
|
public function setLastModifiedBy($pValue = '')
|
||||||
$this->_lastModifiedBy = $pValue;
|
{
|
||||||
return $this;
|
$this->_lastModifiedBy = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Created
|
* Get Created
|
||||||
*
|
*
|
||||||
* @return datetime
|
* @return datetime
|
||||||
*/
|
*/
|
||||||
public function getCreated() {
|
public function getCreated()
|
||||||
return $this->_created;
|
{
|
||||||
}
|
return $this->_created;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Created
|
* Set Created
|
||||||
*
|
*
|
||||||
* @param datetime $pValue
|
* @param datetime $pValue
|
||||||
* @return PHPWord_DocumentProperties
|
* @return PHPWord_DocumentProperties
|
||||||
*/
|
*/
|
||||||
public function setCreated($pValue = null) {
|
public function setCreated($pValue = null)
|
||||||
if (is_null($pValue)) {
|
{
|
||||||
$pValue = time();
|
if (is_null($pValue)) {
|
||||||
}
|
$pValue = time();
|
||||||
$this->_created = $pValue;
|
}
|
||||||
return $this;
|
$this->_created = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Modified
|
* Get Modified
|
||||||
*
|
*
|
||||||
* @return datetime
|
* @return datetime
|
||||||
*/
|
*/
|
||||||
public function getModified() {
|
public function getModified()
|
||||||
return $this->_modified;
|
{
|
||||||
}
|
return $this->_modified;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Modified
|
* Set Modified
|
||||||
*
|
*
|
||||||
* @param datetime $pValue
|
* @param datetime $pValue
|
||||||
* @return PHPWord_DocumentProperties
|
* @return PHPWord_DocumentProperties
|
||||||
*/
|
*/
|
||||||
public function setModified($pValue = null) {
|
public function setModified($pValue = null)
|
||||||
if (is_null($pValue)) {
|
{
|
||||||
$pValue = time();
|
if (is_null($pValue)) {
|
||||||
}
|
$pValue = time();
|
||||||
$this->_modified = $pValue;
|
}
|
||||||
return $this;
|
$this->_modified = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Title
|
* Get Title
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getTitle() {
|
public function getTitle()
|
||||||
return $this->_title;
|
{
|
||||||
}
|
return $this->_title;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Title
|
* Set Title
|
||||||
*
|
*
|
||||||
* @param string $pValue
|
* @param string $pValue
|
||||||
* @return PHPWord_DocumentProperties
|
* @return PHPWord_DocumentProperties
|
||||||
*/
|
*/
|
||||||
public function setTitle($pValue = '') {
|
public function setTitle($pValue = '')
|
||||||
$this->_title = $pValue;
|
{
|
||||||
return $this;
|
$this->_title = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Description
|
* Get Description
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getDescription() {
|
public function getDescription()
|
||||||
return $this->_description;
|
{
|
||||||
}
|
return $this->_description;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Description
|
* Set Description
|
||||||
*
|
*
|
||||||
* @param string $pValue
|
* @param string $pValue
|
||||||
* @return PHPWord_DocumentProperties
|
* @return PHPWord_DocumentProperties
|
||||||
*/
|
*/
|
||||||
public function setDescription($pValue = '') {
|
public function setDescription($pValue = '')
|
||||||
$this->_description = $pValue;
|
{
|
||||||
return $this;
|
$this->_description = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Subject
|
* Get Subject
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getSubject() {
|
public function getSubject()
|
||||||
return $this->_subject;
|
{
|
||||||
}
|
return $this->_subject;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Subject
|
* Set Subject
|
||||||
*
|
*
|
||||||
* @param string $pValue
|
* @param string $pValue
|
||||||
* @return PHPWord_DocumentProperties
|
* @return PHPWord_DocumentProperties
|
||||||
*/
|
*/
|
||||||
public function setSubject($pValue = '') {
|
public function setSubject($pValue = '')
|
||||||
$this->_subject = $pValue;
|
{
|
||||||
return $this;
|
$this->_subject = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Keywords
|
* Get Keywords
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getKeywords() {
|
public function getKeywords()
|
||||||
return $this->_keywords;
|
{
|
||||||
}
|
return $this->_keywords;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Keywords
|
* Set Keywords
|
||||||
*
|
*
|
||||||
* @param string $pValue
|
* @param string $pValue
|
||||||
* @return PHPWord_DocumentProperties
|
* @return PHPWord_DocumentProperties
|
||||||
*/
|
*/
|
||||||
public function setKeywords($pValue = '') {
|
public function setKeywords($pValue = '')
|
||||||
$this->_keywords = $pValue;
|
{
|
||||||
return $this;
|
$this->_keywords = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Category
|
* Get Category
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getCategory() {
|
public function getCategory()
|
||||||
return $this->_category;
|
{
|
||||||
}
|
return $this->_category;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Category
|
* Set Category
|
||||||
*
|
*
|
||||||
* @param string $pValue
|
* @param string $pValue
|
||||||
* @return PHPWord_DocumentProperties
|
* @return PHPWord_DocumentProperties
|
||||||
*/
|
*/
|
||||||
public function setCategory($pValue = '') {
|
public function setCategory($pValue = '')
|
||||||
$this->_category = $pValue;
|
{
|
||||||
return $this;
|
$this->_category = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Company
|
* Get Company
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getCompany() {
|
public function getCompany()
|
||||||
return $this->_company;
|
{
|
||||||
}
|
return $this->_company;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Company
|
* Set Company
|
||||||
*
|
*
|
||||||
* @param string $pValue
|
* @param string $pValue
|
||||||
* @return PHPWord_DocumentProperties
|
* @return PHPWord_DocumentProperties
|
||||||
*/
|
*/
|
||||||
public function setCompany($pValue = '') {
|
public function setCompany($pValue = '')
|
||||||
$this->_company = $pValue;
|
{
|
||||||
return $this;
|
$this->_company = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
|
||||||
|
|
@ -52,25 +52,26 @@ class PHPWord_HashTable
|
||||||
/**
|
/**
|
||||||
* Create a new PHPWord_HashTable
|
* Create a new PHPWord_HashTable
|
||||||
*
|
*
|
||||||
* @param PHPWord_IComparable[] $pSource Optional source array to create HashTable from
|
* @param PHPWord_IComparable[] $pSource Optional source array to create HashTable from
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function __construct($pSource = null)
|
public function __construct($pSource = null)
|
||||||
{
|
{
|
||||||
if (!is_null($pSource)) {
|
if (!is_null($pSource)) {
|
||||||
// Create HashTable
|
// Create HashTable
|
||||||
$this->addFromSource($pSource);
|
$this->addFromSource($pSource);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add HashTable items from source
|
* Add HashTable items from source
|
||||||
*
|
*
|
||||||
* @param PHPWord_IComparable[] $pSource Source array to create HashTable from
|
* @param PHPWord_IComparable[] $pSource Source array to create HashTable from
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function addFromSource($pSource = null) {
|
public function addFromSource($pSource = null)
|
||||||
// Check if an array was passed
|
{
|
||||||
|
// Check if an array was passed
|
||||||
if ($pSource == null) {
|
if ($pSource == null) {
|
||||||
return;
|
return;
|
||||||
} else if (!is_array($pSource)) {
|
} else if (!is_array($pSource)) {
|
||||||
|
|
@ -85,63 +86,66 @@ class PHPWord_HashTable
|
||||||
/**
|
/**
|
||||||
* Add HashTable item
|
* Add HashTable item
|
||||||
*
|
*
|
||||||
* @param PHPWord_IComparable $pSource Item to add
|
* @param PHPWord_IComparable $pSource Item to add
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function add(PHPWord_IComparable $pSource = null) {
|
public function add(PHPWord_IComparable $pSource = null)
|
||||||
// Determine hashcode
|
{
|
||||||
$hashCode = null;
|
// Determine hashcode
|
||||||
$hashIndex = $pSource->getHashIndex();
|
$hashCode = null;
|
||||||
if ( is_null ( $hashIndex ) ) {
|
$hashIndex = $pSource->getHashIndex();
|
||||||
$hashCode = $pSource->getHashCode();
|
if (is_null($hashIndex)) {
|
||||||
} else if ( isset ( $this->_keyMap[$hashIndex] ) ) {
|
$hashCode = $pSource->getHashCode();
|
||||||
$hashCode = $this->_keyMap[$hashIndex];
|
} else if (isset ($this->_keyMap[$hashIndex])) {
|
||||||
} else {
|
$hashCode = $this->_keyMap[$hashIndex];
|
||||||
$hashCode = $pSource->getHashCode();
|
} else {
|
||||||
}
|
$hashCode = $pSource->getHashCode();
|
||||||
|
}
|
||||||
|
|
||||||
// Add value
|
// Add value
|
||||||
if (!isset($this->_items[ $hashCode ])) {
|
if (!isset($this->_items[$hashCode])) {
|
||||||
$this->_items[ $hashCode ] = $pSource;
|
$this->_items[$hashCode] = $pSource;
|
||||||
$index = count($this->_items) - 1;
|
$index = count($this->_items) - 1;
|
||||||
$this->_keyMap[ $index ] = $hashCode;
|
$this->_keyMap[$index] = $hashCode;
|
||||||
$pSource->setHashIndex( $index );
|
$pSource->setHashIndex($index);
|
||||||
} else {
|
} else {
|
||||||
$pSource->setHashIndex( $this->_items[ $hashCode ]->getHashIndex() );
|
$pSource->setHashIndex($this->_items[$hashCode]->getHashIndex());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove HashTable item
|
* Remove HashTable item
|
||||||
*
|
*
|
||||||
* @param PHPWord_IComparable $pSource Item to remove
|
* @param PHPWord_IComparable $pSource Item to remove
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function remove(PHPWord_IComparable $pSource = null) {
|
public function remove(PHPWord_IComparable $pSource = null)
|
||||||
if (isset($this->_items[ $pSource->getHashCode() ])) {
|
{
|
||||||
unset($this->_items[ $pSource->getHashCode() ]);
|
if (isset($this->_items[$pSource->getHashCode()])) {
|
||||||
|
unset($this->_items[$pSource->getHashCode()]);
|
||||||
|
|
||||||
$deleteKey = -1;
|
$deleteKey = -1;
|
||||||
foreach ($this->_keyMap as $key => $value) {
|
foreach ($this->_keyMap as $key => $value) {
|
||||||
if ($deleteKey >= 0) {
|
if ($deleteKey >= 0) {
|
||||||
$this->_keyMap[$key - 1] = $value;
|
$this->_keyMap[$key - 1] = $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($value == $pSource->getHashCode()) {
|
if ($value == $pSource->getHashCode()) {
|
||||||
$deleteKey = $key;
|
$deleteKey = $key;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
unset($this->_keyMap[ count($this->_keyMap) - 1 ]);
|
unset($this->_keyMap[count($this->_keyMap) - 1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clear HashTable
|
* Clear HashTable
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function clear() {
|
public function clear()
|
||||||
$this->_items = array();
|
{
|
||||||
$this->_keyMap = array();
|
$this->_items = array();
|
||||||
|
$this->_keyMap = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -149,48 +153,52 @@ class PHPWord_HashTable
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function count() {
|
public function count()
|
||||||
return count($this->_items);
|
{
|
||||||
|
return count($this->_items);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get index for hash code
|
* Get index for hash code
|
||||||
*
|
*
|
||||||
* @param string $pHashCode
|
* @param string $pHashCode
|
||||||
* @return int Index
|
* @return int Index
|
||||||
*/
|
*/
|
||||||
public function getIndexForHashCode($pHashCode = '') {
|
public function getIndexForHashCode($pHashCode = '')
|
||||||
return array_search($pHashCode, $this->_keyMap);
|
{
|
||||||
|
return array_search($pHashCode, $this->_keyMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get by index
|
* Get by index
|
||||||
*
|
*
|
||||||
* @param int $pIndex
|
* @param int $pIndex
|
||||||
* @return PHPWord_IComparable
|
* @return PHPWord_IComparable
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function getByIndex($pIndex = 0) {
|
public function getByIndex($pIndex = 0)
|
||||||
if (isset($this->_keyMap[$pIndex])) {
|
{
|
||||||
return $this->getByHashCode( $this->_keyMap[$pIndex] );
|
if (isset($this->_keyMap[$pIndex])) {
|
||||||
}
|
return $this->getByHashCode($this->_keyMap[$pIndex]);
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get by hashcode
|
* Get by hashcode
|
||||||
*
|
*
|
||||||
* @param string $pHashCode
|
* @param string $pHashCode
|
||||||
* @return PHPWord_IComparable
|
* @return PHPWord_IComparable
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function getByHashCode($pHashCode = '') {
|
public function getByHashCode($pHashCode = '')
|
||||||
if (isset($this->_items[$pHashCode])) {
|
{
|
||||||
return $this->_items[$pHashCode];
|
if (isset($this->_items[$pHashCode])) {
|
||||||
}
|
return $this->_items[$pHashCode];
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -198,19 +206,21 @@ class PHPWord_HashTable
|
||||||
*
|
*
|
||||||
* @return PHPWord_IComparable[]
|
* @return PHPWord_IComparable[]
|
||||||
*/
|
*/
|
||||||
public function toArray() {
|
public function toArray()
|
||||||
return $this->_items;
|
{
|
||||||
|
return $this->_items;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implement PHP __clone to create a deep clone, not just a shallow copy.
|
* Implement PHP __clone to create a deep clone, not just a shallow copy.
|
||||||
*/
|
*/
|
||||||
public function __clone() {
|
public function __clone()
|
||||||
$vars = get_object_vars($this);
|
{
|
||||||
foreach ($vars as $key => $value) {
|
$vars = get_object_vars($this);
|
||||||
if (is_object($value)) {
|
foreach ($vars as $key => $value) {
|
||||||
$this->$key = clone $value;
|
if (is_object($value)) {
|
||||||
}
|
$this->$key = clone $value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,88 +33,94 @@
|
||||||
* @package PHPWord
|
* @package PHPWord
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_IOFactory {
|
class PHPWord_IOFactory
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Search locations
|
* Search locations
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private static $_searchLocations = array(
|
private static $_searchLocations = array(
|
||||||
array('type' => 'IWriter', 'path' => 'PHPWord/Writer/{0}.php', 'class' => 'PHPWord_Writer_{0}')
|
array('type' => 'IWriter', 'path' => 'PHPWord/Writer/{0}.php', 'class' => 'PHPWord_Writer_{0}')
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Autoresolve classes
|
* Autoresolve classes
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private static $_autoResolveClasses = array(
|
private static $_autoResolveClasses = array(
|
||||||
'Serialized'
|
'Serialized'
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Private constructor for PHPWord_IOFactory
|
* Private constructor for PHPWord_IOFactory
|
||||||
*/
|
*/
|
||||||
private function __construct() { }
|
private function __construct()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get search locations
|
* Get search locations
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public static function getSearchLocations() {
|
public static function getSearchLocations()
|
||||||
return self::$_searchLocations;
|
{
|
||||||
}
|
return self::$_searchLocations;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set search locations
|
* Set search locations
|
||||||
*
|
*
|
||||||
* @param array $value
|
* @param array $value
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public static function setSearchLocations($value) {
|
public static function setSearchLocations($value)
|
||||||
if (is_array($value)) {
|
{
|
||||||
self::$_searchLocations = $value;
|
if (is_array($value)) {
|
||||||
} else {
|
self::$_searchLocations = $value;
|
||||||
throw new Exception('Invalid parameter passed.');
|
} else {
|
||||||
}
|
throw new Exception('Invalid parameter passed.');
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add search location
|
* Add search location
|
||||||
*
|
*
|
||||||
* @param string $type Example: IWriter
|
* @param string $type Example: IWriter
|
||||||
* @param string $location Example: PHPWord/Writer/{0}.php
|
* @param string $location Example: PHPWord/Writer/{0}.php
|
||||||
* @param string $classname Example: PHPWord_Writer_{0}
|
* @param string $classname Example: PHPWord_Writer_{0}
|
||||||
*/
|
*/
|
||||||
public static function addSearchLocation($type = '', $location = '', $classname = '') {
|
public static function addSearchLocation($type = '', $location = '', $classname = '')
|
||||||
self::$_searchLocations[] = array( 'type' => $type, 'path' => $location, 'class' => $classname );
|
{
|
||||||
}
|
self::$_searchLocations[] = array('type' => $type, 'path' => $location, 'class' => $classname);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create PHPWord_Writer_IWriter
|
* Create PHPWord_Writer_IWriter
|
||||||
*
|
*
|
||||||
* @param PHPWord $PHPWord
|
* @param PHPWord $PHPWord
|
||||||
* @param string $writerType Example: Word2007
|
* @param string $writerType Example: Word2007
|
||||||
* @return PHPWord_Writer_IWriter
|
* @return PHPWord_Writer_IWriter
|
||||||
*/
|
*/
|
||||||
public static function createWriter(PHPWord $PHPWord, $writerType = '') {
|
public static function createWriter(PHPWord $PHPWord, $writerType = '')
|
||||||
$searchType = 'IWriter';
|
{
|
||||||
|
$searchType = 'IWriter';
|
||||||
|
|
||||||
foreach (self::$_searchLocations as $searchLocation) {
|
foreach (self::$_searchLocations as $searchLocation) {
|
||||||
if ($searchLocation['type'] == $searchType) {
|
if ($searchLocation['type'] == $searchType) {
|
||||||
$className = str_replace('{0}', $writerType, $searchLocation['class']);
|
$className = str_replace('{0}', $writerType, $searchLocation['class']);
|
||||||
$classFile = str_replace('{0}', $writerType, $searchLocation['path']);
|
$classFile = str_replace('{0}', $writerType, $searchLocation['path']);
|
||||||
|
|
||||||
$instance = new $className($PHPWord);
|
$instance = new $className($PHPWord);
|
||||||
if(!is_null($instance)) {
|
if (!is_null($instance)) {
|
||||||
return $instance;
|
return $instance;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new Exception("No $searchType found for type $writerType");
|
throw new Exception("No $searchType found for type $writerType");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -33,296 +33,307 @@
|
||||||
* @package PHPWord
|
* @package PHPWord
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Media {
|
class PHPWord_Media
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Section Media Elements
|
* Section Media Elements
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private static $_sectionMedia = array('images'=>array(),
|
private static $_sectionMedia = array('images' => array(),
|
||||||
'embeddings'=>array(),
|
'embeddings' => array(),
|
||||||
'links'=>array());
|
'links' => array());
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Header Media Elements
|
* Header Media Elements
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private static $_headerMedia = array();
|
private static $_headerMedia = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Footer Media Elements
|
* Footer Media Elements
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private static $_footerMedia = array();
|
private static $_footerMedia = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ObjectID Counter
|
* ObjectID Counter
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private static $_objectId = 1325353440;
|
private static $_objectId = 1325353440;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add new Section Media Element
|
* Add new Section Media Element
|
||||||
*
|
*
|
||||||
* @param string $src
|
* @param string $src
|
||||||
* @param string $type
|
* @param string $type
|
||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public static function addSectionMediaElement($src, $type, PHPWord_Section_MemoryImage $memoryImage = null) {
|
public static function addSectionMediaElement($src, $type, PHPWord_Section_MemoryImage $memoryImage = null)
|
||||||
$mediaId = md5($src);
|
{
|
||||||
$key = ($type == 'image') ? 'images' : 'embeddings';
|
$mediaId = md5($src);
|
||||||
|
$key = ($type == 'image') ? 'images' : 'embeddings';
|
||||||
|
|
||||||
if(!array_key_exists($mediaId, self::$_sectionMedia[$key])) {
|
if (!array_key_exists($mediaId, self::$_sectionMedia[$key])) {
|
||||||
$cImg = self::countSectionMediaElements('images');
|
$cImg = self::countSectionMediaElements('images');
|
||||||
$cObj = self::countSectionMediaElements('embeddings');
|
$cObj = self::countSectionMediaElements('embeddings');
|
||||||
$rID = self::countSectionMediaElements() + 7;
|
$rID = self::countSectionMediaElements() + 7;
|
||||||
|
|
||||||
$media = array();
|
$media = array();
|
||||||
|
|
||||||
if($type == 'image') {
|
if ($type == 'image') {
|
||||||
$cImg++;
|
$cImg++;
|
||||||
$inf = pathinfo($src);
|
$inf = pathinfo($src);
|
||||||
$isMemImage = (substr(strtolower($inf['extension']), 0, 3) == 'php' && $type == 'image') ? true : false;
|
$isMemImage = (substr(strtolower($inf['extension']), 0, 3) == 'php' && $type == 'image') ? true : false;
|
||||||
|
|
||||||
if($isMemImage) {
|
if ($isMemImage) {
|
||||||
$ext = $memoryImage->getImageExtension();
|
$ext = $memoryImage->getImageExtension();
|
||||||
$media['isMemImage'] = true;
|
$media['isMemImage'] = true;
|
||||||
$media['createfunction'] = $memoryImage->getImageCreateFunction();
|
$media['createfunction'] = $memoryImage->getImageCreateFunction();
|
||||||
$media['imagefunction'] = $memoryImage->getImageFunction();
|
$media['imagefunction'] = $memoryImage->getImageFunction();
|
||||||
} else {
|
} else {
|
||||||
$ext = $inf['extension'];
|
$ext = $inf['extension'];
|
||||||
if($ext == 'jpeg') { // Office crashes when adding a jpEg Image, so rename to jpg
|
if ($ext == 'jpeg') { // Office crashes when adding a jpEg Image, so rename to jpg
|
||||||
$ext = 'jpg';
|
$ext = 'jpg';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$folder = 'media';
|
$folder = 'media';
|
||||||
$file = $type.$cImg.'.'.strtolower($ext);
|
$file = $type . $cImg . '.' . strtolower($ext);
|
||||||
} elseif($type == 'oleObject') {
|
} elseif ($type == 'oleObject') {
|
||||||
$cObj++;
|
$cObj++;
|
||||||
$folder = 'embedding';
|
$folder = 'embedding';
|
||||||
$file = $type.$cObj.'.bin';
|
$file = $type . $cObj . '.bin';
|
||||||
}
|
}
|
||||||
|
|
||||||
$media['source'] = $src;
|
$media['source'] = $src;
|
||||||
$media['target'] = "$folder/section_$file";
|
$media['target'] = "$folder/section_$file";
|
||||||
$media['type'] = $type;
|
$media['type'] = $type;
|
||||||
$media['rID'] = $rID;
|
$media['rID'] = $rID;
|
||||||
|
|
||||||
self::$_sectionMedia[$key][$mediaId] = $media;
|
self::$_sectionMedia[$key][$mediaId] = $media;
|
||||||
|
|
||||||
if($type == 'oleObject') {
|
if ($type == 'oleObject') {
|
||||||
return array($rID, ++self::$_objectId);
|
return array($rID, ++self::$_objectId);
|
||||||
} else {
|
} else {
|
||||||
return $rID;
|
return $rID;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if($type == 'oleObject') {
|
if ($type == 'oleObject') {
|
||||||
$rID = self::$_sectionMedia[$key][$mediaId]['rID'];
|
$rID = self::$_sectionMedia[$key][$mediaId]['rID'];
|
||||||
return array($rID, ++self::$_objectId);
|
return array($rID, ++self::$_objectId);
|
||||||
} else {
|
} else {
|
||||||
return self::$_sectionMedia[$key][$mediaId]['rID'];
|
return self::$_sectionMedia[$key][$mediaId]['rID'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add new Section Link Element
|
* Add new Section Link Element
|
||||||
*
|
*
|
||||||
* @param string $linkSrc
|
* @param string $linkSrc
|
||||||
* @param string $linkName
|
* @param string $linkName
|
||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public static function addSectionLinkElement($linkSrc) {
|
public static function addSectionLinkElement($linkSrc)
|
||||||
$rID = self::countSectionMediaElements() + 7;
|
{
|
||||||
|
$rID = self::countSectionMediaElements() + 7;
|
||||||
|
|
||||||
$link = array();
|
$link = array();
|
||||||
$link['target'] = $linkSrc;
|
$link['target'] = $linkSrc;
|
||||||
$link['rID'] = $rID;
|
$link['rID'] = $rID;
|
||||||
$link['type'] = 'hyperlink';
|
$link['type'] = 'hyperlink';
|
||||||
|
|
||||||
self::$_sectionMedia['links'][] = $link;
|
self::$_sectionMedia['links'][] = $link;
|
||||||
|
|
||||||
return $rID;
|
return $rID;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Section Media Elements
|
* Get Section Media Elements
|
||||||
*
|
*
|
||||||
* @param string $key
|
* @param string $key
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public static function getSectionMediaElements($key = null) {
|
public static function getSectionMediaElements($key = null)
|
||||||
if(!is_null($key)) {
|
{
|
||||||
return self::$_sectionMedia[$key];
|
if (!is_null($key)) {
|
||||||
} else {
|
return self::$_sectionMedia[$key];
|
||||||
$arrImages = self::$_sectionMedia['images'];
|
} else {
|
||||||
$arrObjects = self::$_sectionMedia['embeddings'];
|
$arrImages = self::$_sectionMedia['images'];
|
||||||
$arrLinks = self::$_sectionMedia['links'];
|
$arrObjects = self::$_sectionMedia['embeddings'];
|
||||||
return array_merge($arrImages, $arrObjects, $arrLinks);
|
$arrLinks = self::$_sectionMedia['links'];
|
||||||
}
|
return array_merge($arrImages, $arrObjects, $arrLinks);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Section Media Elements Count
|
* Get Section Media Elements Count
|
||||||
*
|
*
|
||||||
* @param string $key
|
* @param string $key
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public static function countSectionMediaElements($key = null) {
|
public static function countSectionMediaElements($key = null)
|
||||||
if(!is_null($key)) {
|
{
|
||||||
return count(self::$_sectionMedia[$key]);
|
if (!is_null($key)) {
|
||||||
} else {
|
return count(self::$_sectionMedia[$key]);
|
||||||
$cImages = count(self::$_sectionMedia['images']);
|
} else {
|
||||||
$cObjects = count(self::$_sectionMedia['embeddings']);
|
$cImages = count(self::$_sectionMedia['images']);
|
||||||
$cLinks = count(self::$_sectionMedia['links']);
|
$cObjects = count(self::$_sectionMedia['embeddings']);
|
||||||
return ($cImages + $cObjects + $cLinks);
|
$cLinks = count(self::$_sectionMedia['links']);
|
||||||
}
|
return ($cImages + $cObjects + $cLinks);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add new Header Media Element
|
* Add new Header Media Element
|
||||||
*
|
*
|
||||||
* @param int $headerCount
|
* @param int $headerCount
|
||||||
* @param string $src
|
* @param string $src
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public static function addHeaderMediaElement($headerCount, $src, PHPWord_Section_MemoryImage $memoryImage = null) {
|
public static function addHeaderMediaElement($headerCount, $src, PHPWord_Section_MemoryImage $memoryImage = null)
|
||||||
$mediaId = md5($src);
|
{
|
||||||
$key = 'header'.$headerCount;
|
$mediaId = md5($src);
|
||||||
|
$key = 'header' . $headerCount;
|
||||||
|
|
||||||
if(!array_key_exists($key, self::$_headerMedia)) {
|
if (!array_key_exists($key, self::$_headerMedia)) {
|
||||||
self::$_headerMedia[$key] = array();
|
self::$_headerMedia[$key] = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!array_key_exists($mediaId, self::$_headerMedia[$key])) {
|
if (!array_key_exists($mediaId, self::$_headerMedia[$key])) {
|
||||||
$cImg = self::countHeaderMediaElements($key);
|
$cImg = self::countHeaderMediaElements($key);
|
||||||
$rID = $cImg + 1;
|
$rID = $cImg + 1;
|
||||||
|
|
||||||
$cImg++;
|
$cImg++;
|
||||||
$inf = pathinfo($src);
|
$inf = pathinfo($src);
|
||||||
$isMemImage = (substr(strtolower($inf['extension']), 0, 3) == 'php') ? true : false;
|
$isMemImage = (substr(strtolower($inf['extension']), 0, 3) == 'php') ? true : false;
|
||||||
|
|
||||||
$media = array();
|
$media = array();
|
||||||
if($isMemImage) {
|
if ($isMemImage) {
|
||||||
$ext = $memoryImage->getImageExtension();
|
$ext = $memoryImage->getImageExtension();
|
||||||
$media['isMemImage'] = true;
|
$media['isMemImage'] = true;
|
||||||
$media['createfunction'] = $memoryImage->getImageCreateFunction();
|
$media['createfunction'] = $memoryImage->getImageCreateFunction();
|
||||||
$media['imagefunction'] = $memoryImage->getImageFunction();
|
$media['imagefunction'] = $memoryImage->getImageFunction();
|
||||||
} else {
|
} else {
|
||||||
$ext = $inf['extension'];
|
$ext = $inf['extension'];
|
||||||
if($ext == 'jpeg') { // Office crashes when adding a jpEg Image, so rename to jpg
|
if ($ext == 'jpeg') { // Office crashes when adding a jpEg Image, so rename to jpg
|
||||||
$ext = 'jpg';
|
$ext = 'jpg';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$file = 'image'.$cImg.'.'.strtolower($ext);
|
$file = 'image' . $cImg . '.' . strtolower($ext);
|
||||||
|
|
||||||
$media['source'] = $src;
|
$media['source'] = $src;
|
||||||
$media['target'] = 'media/'.$key.'_'.$file;
|
$media['target'] = 'media/' . $key . '_' . $file;
|
||||||
$media['type'] = 'image';
|
$media['type'] = 'image';
|
||||||
$media['rID'] = $rID;
|
$media['rID'] = $rID;
|
||||||
|
|
||||||
self::$_headerMedia[$key][$mediaId] = $media;
|
self::$_headerMedia[$key][$mediaId] = $media;
|
||||||
|
|
||||||
return $rID;
|
return $rID;
|
||||||
} else {
|
} else {
|
||||||
return self::$_headerMedia[$key][$mediaId]['rID'];
|
return self::$_headerMedia[$key][$mediaId]['rID'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Header Media Elements Count
|
* Get Header Media Elements Count
|
||||||
*
|
*
|
||||||
* @param string $key
|
* @param string $key
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public static function countHeaderMediaElements($key) {
|
public static function countHeaderMediaElements($key)
|
||||||
return count(self::$_headerMedia[$key]);
|
{
|
||||||
}
|
return count(self::$_headerMedia[$key]);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Header Media Elements
|
* Get Header Media Elements
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public static function getHeaderMediaElements() {
|
public static function getHeaderMediaElements()
|
||||||
return self::$_headerMedia;
|
{
|
||||||
}
|
return self::$_headerMedia;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add new Footer Media Element
|
* Add new Footer Media Element
|
||||||
*
|
*
|
||||||
* @param int $footerCount
|
* @param int $footerCount
|
||||||
* @param string $src
|
* @param string $src
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public static function addFooterMediaElement($footerCount, $src, PHPWord_Section_MemoryImage $memoryImage = null) {
|
public static function addFooterMediaElement($footerCount, $src, PHPWord_Section_MemoryImage $memoryImage = null)
|
||||||
$mediaId = md5($src);
|
{
|
||||||
$key = 'footer'.$footerCount;
|
$mediaId = md5($src);
|
||||||
|
$key = 'footer' . $footerCount;
|
||||||
|
|
||||||
if(!array_key_exists($key, self::$_footerMedia)) {
|
if (!array_key_exists($key, self::$_footerMedia)) {
|
||||||
self::$_footerMedia[$key] = array();
|
self::$_footerMedia[$key] = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!array_key_exists($mediaId, self::$_footerMedia[$key])) {
|
if (!array_key_exists($mediaId, self::$_footerMedia[$key])) {
|
||||||
$cImg = self::countFooterMediaElements($key);
|
$cImg = self::countFooterMediaElements($key);
|
||||||
$rID = $cImg + 1;
|
$rID = $cImg + 1;
|
||||||
|
|
||||||
$cImg++;
|
$cImg++;
|
||||||
$inf = pathinfo($src);
|
$inf = pathinfo($src);
|
||||||
$isMemImage = (substr(strtolower($inf['extension']), 0, 3) == 'php') ? true : false;
|
$isMemImage = (substr(strtolower($inf['extension']), 0, 3) == 'php') ? true : false;
|
||||||
|
|
||||||
$media = array();
|
$media = array();
|
||||||
if($isMemImage) {
|
if ($isMemImage) {
|
||||||
$ext = $memoryImage->getImageExtension();
|
$ext = $memoryImage->getImageExtension();
|
||||||
$media['isMemImage'] = true;
|
$media['isMemImage'] = true;
|
||||||
$media['createfunction'] = $memoryImage->getImageCreateFunction();
|
$media['createfunction'] = $memoryImage->getImageCreateFunction();
|
||||||
$media['imagefunction'] = $memoryImage->getImageFunction();
|
$media['imagefunction'] = $memoryImage->getImageFunction();
|
||||||
} else {
|
} else {
|
||||||
$ext = $inf['extension'];
|
$ext = $inf['extension'];
|
||||||
if($ext == 'jpeg') { // Office crashes when adding a jpEg Image, so rename to jpg
|
if ($ext == 'jpeg') { // Office crashes when adding a jpEg Image, so rename to jpg
|
||||||
$ext = 'jpg';
|
$ext = 'jpg';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$file = 'image'.$cImg.'.'.strtolower($ext);
|
$file = 'image' . $cImg . '.' . strtolower($ext);
|
||||||
|
|
||||||
$media['source'] = $src;
|
$media['source'] = $src;
|
||||||
$media['target'] = 'media/'.$key.'_'.$file;
|
$media['target'] = 'media/' . $key . '_' . $file;
|
||||||
$media['type'] = 'image';
|
$media['type'] = 'image';
|
||||||
$media['rID'] = $rID;
|
$media['rID'] = $rID;
|
||||||
|
|
||||||
self::$_footerMedia[$key][$mediaId] = $media;
|
self::$_footerMedia[$key][$mediaId] = $media;
|
||||||
|
|
||||||
return $rID;
|
return $rID;
|
||||||
} else {
|
} else {
|
||||||
return self::$_footerMedia[$key][$mediaId]['rID'];
|
return self::$_footerMedia[$key][$mediaId]['rID'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Footer Media Elements Count
|
* Get Footer Media Elements Count
|
||||||
*
|
*
|
||||||
* @param string $key
|
* @param string $key
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public static function countFooterMediaElements($key) {
|
public static function countFooterMediaElements($key)
|
||||||
return count(self::$_footerMedia[$key]);
|
{
|
||||||
}
|
return count(self::$_footerMedia[$key]);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Footer Media Elements
|
* Get Footer Media Elements
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public static function getFooterMediaElements() {
|
public static function getFooterMediaElements()
|
||||||
return self::$_footerMedia;
|
{
|
||||||
}
|
return self::$_footerMedia;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
|
||||||
|
|
@ -33,339 +33,358 @@
|
||||||
* @package PHPWord_Section
|
* @package PHPWord_Section
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Section {
|
class PHPWord_Section
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Section count
|
* Section count
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_sectionCount;
|
private $_sectionCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Section settings
|
* Section settings
|
||||||
*
|
*
|
||||||
* @var PHPWord_Section_Settings
|
* @var PHPWord_Section_Settings
|
||||||
*/
|
*/
|
||||||
private $_settings;
|
private $_settings;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Section Element Collection
|
* Section Element Collection
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private $_elementCollection = array();
|
private $_elementCollection = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Section Header
|
* Section Header
|
||||||
*
|
*
|
||||||
* @var PHPWord_Section_Header
|
* @var PHPWord_Section_Header
|
||||||
*/
|
*/
|
||||||
private $_header = null;
|
private $_header = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Section Footer
|
* Section Footer
|
||||||
*
|
*
|
||||||
* @var PHPWord_Section_Footer
|
* @var PHPWord_Section_Footer
|
||||||
*/
|
*/
|
||||||
private $_footer = null;
|
private $_footer = null;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new Section
|
* Create a new Section
|
||||||
*
|
*
|
||||||
* @param int $sectionCount
|
* @param int $sectionCount
|
||||||
* @param mixed $settings
|
* @param mixed $settings
|
||||||
*/
|
*/
|
||||||
public function __construct($sectionCount, $settings = null) {
|
public function __construct($sectionCount, $settings = null)
|
||||||
$this->_sectionCount = $sectionCount;
|
{
|
||||||
$this->_settings = new PHPWord_Section_Settings();
|
$this->_sectionCount = $sectionCount;
|
||||||
|
$this->_settings = new PHPWord_Section_Settings();
|
||||||
|
|
||||||
if(!is_null($settings) && is_array($settings)) {
|
if (!is_null($settings) && is_array($settings)) {
|
||||||
foreach($settings as $key => $value) {
|
foreach ($settings as $key => $value) {
|
||||||
if(substr($key, 0, 1) != '_') {
|
if (substr($key, 0, 1) != '_') {
|
||||||
$key = '_'.$key;
|
$key = '_' . $key;
|
||||||
}
|
}
|
||||||
$this->_settings->setSettingValue($key, $value);
|
$this->_settings->setSettingValue($key, $value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Section Settings
|
* Get Section Settings
|
||||||
*
|
*
|
||||||
* @return PHPWord_Section_Settings
|
* @return PHPWord_Section_Settings
|
||||||
*/
|
*/
|
||||||
public function getSettings() {
|
public function getSettings()
|
||||||
return $this->_settings;
|
{
|
||||||
}
|
return $this->_settings;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Text Element
|
* Add a Text Element
|
||||||
*
|
*
|
||||||
* @param string $text
|
* @param string $text
|
||||||
* @param mixed $styleFont
|
* @param mixed $styleFont
|
||||||
* @param mixed $styleParagraph
|
* @param mixed $styleParagraph
|
||||||
* @return PHPWord_Section_Text
|
* @return PHPWord_Section_Text
|
||||||
*/
|
*/
|
||||||
public function addText($text, $styleFont = null, $styleParagraph = null) {
|
public function addText($text, $styleFont = null, $styleParagraph = null)
|
||||||
$givenText = utf8_encode($text);
|
{
|
||||||
$text = new PHPWord_Section_Text($givenText, $styleFont, $styleParagraph);
|
$givenText = utf8_encode($text);
|
||||||
$this->_elementCollection[] = $text;
|
$text = new PHPWord_Section_Text($givenText, $styleFont, $styleParagraph);
|
||||||
return $text;
|
$this->_elementCollection[] = $text;
|
||||||
}
|
return $text;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Link Element
|
* Add a Link Element
|
||||||
*
|
*
|
||||||
* @param string $linkSrc
|
* @param string $linkSrc
|
||||||
* @param string $linkName
|
* @param string $linkName
|
||||||
* @param mixed $styleFont
|
* @param mixed $styleFont
|
||||||
* @param mixed $styleParagraph
|
* @param mixed $styleParagraph
|
||||||
* @return PHPWord_Section_Link
|
* @return PHPWord_Section_Link
|
||||||
*/
|
*/
|
||||||
public function addLink($linkSrc, $linkName = null, $styleFont = null, $styleParagraph = null) {
|
public function addLink($linkSrc, $linkName = null, $styleFont = null, $styleParagraph = null)
|
||||||
$linkSrc = utf8_encode($linkSrc);
|
{
|
||||||
if(!is_null($linkName)) {
|
$linkSrc = utf8_encode($linkSrc);
|
||||||
$linkName = utf8_encode($linkName);
|
if (!is_null($linkName)) {
|
||||||
}
|
$linkName = utf8_encode($linkName);
|
||||||
|
}
|
||||||
|
|
||||||
$link = new PHPWord_Section_Link($linkSrc, $linkName, $styleFont, $styleParagraph);
|
$link = new PHPWord_Section_Link($linkSrc, $linkName, $styleFont, $styleParagraph);
|
||||||
$rID = PHPWord_Media::addSectionLinkElement($linkSrc);
|
$rID = PHPWord_Media::addSectionLinkElement($linkSrc);
|
||||||
$link->setRelationId($rID);
|
$link->setRelationId($rID);
|
||||||
|
|
||||||
$this->_elementCollection[] = $link;
|
$this->_elementCollection[] = $link;
|
||||||
return $link;
|
return $link;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a TextBreak Element
|
* Add a TextBreak Element
|
||||||
*
|
*
|
||||||
* @param int $count
|
* @param int $count
|
||||||
*/
|
*/
|
||||||
public function addTextBreak($count = 1) {
|
public function addTextBreak($count = 1)
|
||||||
for($i=1; $i<=$count; $i++) {
|
{
|
||||||
$this->_elementCollection[] = new PHPWord_Section_TextBreak();
|
for ($i = 1; $i <= $count; $i++) {
|
||||||
}
|
$this->_elementCollection[] = new PHPWord_Section_TextBreak();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a PageBreak Element
|
* Add a PageBreak Element
|
||||||
*/
|
*/
|
||||||
public function addPageBreak() {
|
public function addPageBreak()
|
||||||
$this->_elementCollection[] = new PHPWord_Section_PageBreak();
|
{
|
||||||
}
|
$this->_elementCollection[] = new PHPWord_Section_PageBreak();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Table Element
|
* Add a Table Element
|
||||||
*
|
*
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
* @return PHPWord_Section_Table
|
* @return PHPWord_Section_Table
|
||||||
*/
|
*/
|
||||||
public function addTable($style = null) {
|
public function addTable($style = null)
|
||||||
$table = new PHPWord_Section_Table('section', $this->_sectionCount, $style);
|
{
|
||||||
$this->_elementCollection[] = $table;
|
$table = new PHPWord_Section_Table('section', $this->_sectionCount, $style);
|
||||||
return $table;
|
$this->_elementCollection[] = $table;
|
||||||
}
|
return $table;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a ListItem Element
|
* Add a ListItem Element
|
||||||
*
|
*
|
||||||
* @param string $text
|
* @param string $text
|
||||||
* @param int $depth
|
* @param int $depth
|
||||||
* @param mixed $styleFont
|
* @param mixed $styleFont
|
||||||
* @param mixed $styleList
|
* @param mixed $styleList
|
||||||
* @param mixed $styleParagraph
|
* @param mixed $styleParagraph
|
||||||
* @return PHPWord_Section_ListItem
|
* @return PHPWord_Section_ListItem
|
||||||
*/
|
*/
|
||||||
public function addListItem($text, $depth = 0, $styleFont = null, $styleList = null, $styleParagraph = null) {
|
public function addListItem($text, $depth = 0, $styleFont = null, $styleList = null, $styleParagraph = null)
|
||||||
$text = utf8_encode($text);
|
{
|
||||||
$listItem = new PHPWord_Section_ListItem($text, $depth, $styleFont, $styleList, $styleParagraph);
|
$text = utf8_encode($text);
|
||||||
$this->_elementCollection[] = $listItem;
|
$listItem = new PHPWord_Section_ListItem($text, $depth, $styleFont, $styleList, $styleParagraph);
|
||||||
return $listItem;
|
$this->_elementCollection[] = $listItem;
|
||||||
}
|
return $listItem;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a OLE-Object Element
|
* Add a OLE-Object Element
|
||||||
*
|
*
|
||||||
* @param string $src
|
* @param string $src
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
* @return PHPWord_Section_Object
|
* @return PHPWord_Section_Object
|
||||||
*/
|
*/
|
||||||
public function addObject($src, $style = null) {
|
public function addObject($src, $style = null)
|
||||||
$object = new PHPWord_Section_Object($src, $style);
|
{
|
||||||
|
$object = new PHPWord_Section_Object($src, $style);
|
||||||
|
|
||||||
if(!is_null($object->getSource())) {
|
if (!is_null($object->getSource())) {
|
||||||
$inf = pathinfo($src);
|
$inf = pathinfo($src);
|
||||||
$ext = $inf['extension'];
|
$ext = $inf['extension'];
|
||||||
if(strlen($ext) == 4 && strtolower(substr($ext, -1)) == 'x') {
|
if (strlen($ext) == 4 && strtolower(substr($ext, -1)) == 'x') {
|
||||||
$ext = substr($ext, 0, -1);
|
$ext = substr($ext, 0, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
$iconSrc = PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/';
|
$iconSrc = PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/';
|
||||||
if(!file_exists($iconSrc.'_'.$ext.'.png')) {
|
if (!file_exists($iconSrc . '_' . $ext . '.png')) {
|
||||||
$iconSrc = $iconSrc.'_default.png';
|
$iconSrc = $iconSrc . '_default.png';
|
||||||
} else {
|
} else {
|
||||||
$iconSrc .= '_'.$ext.'.png';
|
$iconSrc .= '_' . $ext . '.png';
|
||||||
}
|
}
|
||||||
|
|
||||||
$rIDimg = PHPWord_Media::addSectionMediaElement($iconSrc, 'image');
|
$rIDimg = PHPWord_Media::addSectionMediaElement($iconSrc, 'image');
|
||||||
$data = PHPWord_Media::addSectionMediaElement($src, 'oleObject');
|
$data = PHPWord_Media::addSectionMediaElement($src, 'oleObject');
|
||||||
$rID = $data[0];
|
$rID = $data[0];
|
||||||
$objectId = $data[1];
|
$objectId = $data[1];
|
||||||
|
|
||||||
$object->setRelationId($rID);
|
$object->setRelationId($rID);
|
||||||
$object->setObjectId($objectId);
|
$object->setObjectId($objectId);
|
||||||
$object->setImageRelationId($rIDimg);
|
$object->setImageRelationId($rIDimg);
|
||||||
|
|
||||||
$this->_elementCollection[] = $object;
|
$this->_elementCollection[] = $object;
|
||||||
return $object;
|
return $object;
|
||||||
} else {
|
} else {
|
||||||
trigger_error('Source does not exist or unsupported object type.');
|
trigger_error('Source does not exist or unsupported object type.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Image Element
|
* Add a Image Element
|
||||||
*
|
*
|
||||||
* @param string $src
|
* @param string $src
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
* @return PHPWord_Section_Image
|
* @return PHPWord_Section_Image
|
||||||
*/
|
*/
|
||||||
public function addImage($src, $style = null) {
|
public function addImage($src, $style = null)
|
||||||
$image = new PHPWord_Section_Image($src, $style);
|
{
|
||||||
|
$image = new PHPWord_Section_Image($src, $style);
|
||||||
|
|
||||||
if(!is_null($image->getSource())) {
|
if (!is_null($image->getSource())) {
|
||||||
$rID = PHPWord_Media::addSectionMediaElement($src, 'image');
|
$rID = PHPWord_Media::addSectionMediaElement($src, 'image');
|
||||||
$image->setRelationId($rID);
|
$image->setRelationId($rID);
|
||||||
|
|
||||||
$this->_elementCollection[] = $image;
|
$this->_elementCollection[] = $image;
|
||||||
return $image;
|
return $image;
|
||||||
} else {
|
} else {
|
||||||
trigger_error('Source does not exist or unsupported image type.');
|
trigger_error('Source does not exist or unsupported image type.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a by PHP created Image Element
|
* Add a by PHP created Image Element
|
||||||
*
|
*
|
||||||
* @param string $link
|
* @param string $link
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
* @return PHPWord_Section_MemoryImage
|
* @return PHPWord_Section_MemoryImage
|
||||||
*/
|
*/
|
||||||
public function addMemoryImage($link, $style = null) {
|
public function addMemoryImage($link, $style = null)
|
||||||
$memoryImage = new PHPWord_Section_MemoryImage($link, $style);
|
{
|
||||||
if(!is_null($memoryImage->getSource())) {
|
$memoryImage = new PHPWord_Section_MemoryImage($link, $style);
|
||||||
$rID = PHPWord_Media::addSectionMediaElement($link, 'image', $memoryImage);
|
if (!is_null($memoryImage->getSource())) {
|
||||||
$memoryImage->setRelationId($rID);
|
$rID = PHPWord_Media::addSectionMediaElement($link, 'image', $memoryImage);
|
||||||
|
$memoryImage->setRelationId($rID);
|
||||||
|
|
||||||
$this->_elementCollection[] = $memoryImage;
|
$this->_elementCollection[] = $memoryImage;
|
||||||
return $memoryImage;
|
return $memoryImage;
|
||||||
} else {
|
} else {
|
||||||
trigger_error('Unsupported image type.');
|
trigger_error('Unsupported image type.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Table-of-Contents Element
|
* Add a Table-of-Contents Element
|
||||||
*
|
*
|
||||||
* @param mixed $styleFont
|
* @param mixed $styleFont
|
||||||
* @param mixed $styleTOC
|
* @param mixed $styleTOC
|
||||||
* @return PHPWord_TOC
|
* @return PHPWord_TOC
|
||||||
*/
|
*/
|
||||||
public function addTOC($styleFont = null, $styleTOC = null) {
|
public function addTOC($styleFont = null, $styleTOC = null)
|
||||||
$toc = new PHPWord_TOC($styleFont, $styleTOC);
|
{
|
||||||
$this->_elementCollection[] = $toc;
|
$toc = new PHPWord_TOC($styleFont, $styleTOC);
|
||||||
return $toc;
|
$this->_elementCollection[] = $toc;
|
||||||
}
|
return $toc;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Title Element
|
* Add a Title Element
|
||||||
*
|
*
|
||||||
* @param string $text
|
* @param string $text
|
||||||
* @param int $depth
|
* @param int $depth
|
||||||
* @return PHPWord_Section_Title
|
* @return PHPWord_Section_Title
|
||||||
*/
|
*/
|
||||||
public function addTitle($text, $depth = 1) {
|
public function addTitle($text, $depth = 1)
|
||||||
$text = utf8_encode($text);
|
{
|
||||||
$styles = PHPWord_Style::getStyles();
|
$text = utf8_encode($text);
|
||||||
if(array_key_exists('Heading_'.$depth, $styles)) {
|
$styles = PHPWord_Style::getStyles();
|
||||||
$style = 'Heading'.$depth;
|
if (array_key_exists('Heading_' . $depth, $styles)) {
|
||||||
} else {
|
$style = 'Heading' . $depth;
|
||||||
$style = null;
|
} else {
|
||||||
}
|
$style = null;
|
||||||
|
}
|
||||||
|
|
||||||
$title = new PHPWord_Section_Title($text, $depth, $style);
|
$title = new PHPWord_Section_Title($text, $depth, $style);
|
||||||
|
|
||||||
$data = PHPWord_TOC::addTitle($text, $depth);
|
$data = PHPWord_TOC::addTitle($text, $depth);
|
||||||
$anchor = $data[0];
|
$anchor = $data[0];
|
||||||
$bookmarkId = $data[1];
|
$bookmarkId = $data[1];
|
||||||
|
|
||||||
$title->setAnchor($anchor);
|
$title->setAnchor($anchor);
|
||||||
$title->setBookmarkId($bookmarkId);
|
$title->setBookmarkId($bookmarkId);
|
||||||
|
|
||||||
$this->_elementCollection[] = $title;
|
$this->_elementCollection[] = $title;
|
||||||
return $title;
|
return $title;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new TextRun
|
* Create a new TextRun
|
||||||
*
|
*
|
||||||
* @return PHPWord_Section_TextRun
|
* @return PHPWord_Section_TextRun
|
||||||
*/
|
*/
|
||||||
public function createTextRun($styleParagraph = null) {
|
public function createTextRun($styleParagraph = null)
|
||||||
$textRun = new PHPWord_Section_TextRun($styleParagraph);
|
{
|
||||||
$this->_elementCollection[] = $textRun;
|
$textRun = new PHPWord_Section_TextRun($styleParagraph);
|
||||||
return $textRun;
|
$this->_elementCollection[] = $textRun;
|
||||||
}
|
return $textRun;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all Elements
|
* Get all Elements
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function getElements() {
|
public function getElements()
|
||||||
return $this->_elementCollection;
|
{
|
||||||
}
|
return $this->_elementCollection;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new Header
|
* Create a new Header
|
||||||
*
|
*
|
||||||
* @return PHPWord_Section_Header
|
* @return PHPWord_Section_Header
|
||||||
*/
|
*/
|
||||||
public function createHeader() {
|
public function createHeader()
|
||||||
$header = new PHPWord_Section_Header($this->_sectionCount);
|
{
|
||||||
$this->_header = $header;
|
$header = new PHPWord_Section_Header($this->_sectionCount);
|
||||||
return $header;
|
$this->_header = $header;
|
||||||
}
|
return $header;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Header
|
* Get Header
|
||||||
*
|
*
|
||||||
* @return PHPWord_Section_Header
|
* @return PHPWord_Section_Header
|
||||||
*/
|
*/
|
||||||
public function getHeader() {
|
public function getHeader()
|
||||||
return $this->_header;
|
{
|
||||||
}
|
return $this->_header;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new Footer
|
* Create a new Footer
|
||||||
*
|
*
|
||||||
* @return PHPWord_Section_Footer
|
* @return PHPWord_Section_Footer
|
||||||
*/
|
*/
|
||||||
public function createFooter() {
|
public function createFooter()
|
||||||
$footer = new PHPWord_Section_Footer($this->_sectionCount);
|
{
|
||||||
$this->_footer = $footer;
|
$footer = new PHPWord_Section_Footer($this->_sectionCount);
|
||||||
return $footer;
|
$this->_footer = $footer;
|
||||||
}
|
return $footer;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Footer
|
* Get Footer
|
||||||
*
|
*
|
||||||
* @return PHPWord_Section_Footer
|
* @return PHPWord_Section_Footer
|
||||||
*/
|
*/
|
||||||
public function getFooter() {
|
public function getFooter()
|
||||||
return $this->_footer;
|
{
|
||||||
}
|
return $this->_footer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -33,169 +33,181 @@
|
||||||
* @package PHPWord_Section
|
* @package PHPWord_Section
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Section_Footer {
|
class PHPWord_Section_Footer
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Footer Count
|
* Footer Count
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_footerCount;
|
private $_footerCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Footer Relation ID
|
* Footer Relation ID
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_rId;
|
private $_rId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Footer Element Collection
|
* Footer Element Collection
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_elementCollection = array();
|
private $_elementCollection = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new Footer
|
* Create a new Footer
|
||||||
*/
|
*/
|
||||||
public function __construct($sectionCount) {
|
public function __construct($sectionCount)
|
||||||
$this->_footerCount = $sectionCount;
|
{
|
||||||
}
|
$this->_footerCount = $sectionCount;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Text Element
|
* Add a Text Element
|
||||||
*
|
*
|
||||||
* @param string $text
|
* @param string $text
|
||||||
* @param mixed $styleFont
|
* @param mixed $styleFont
|
||||||
* @param mixed $styleParagraph
|
* @param mixed $styleParagraph
|
||||||
* @return PHPWord_Section_Text
|
* @return PHPWord_Section_Text
|
||||||
*/
|
*/
|
||||||
public function addText($text, $styleFont = null, $styleParagraph = null) {
|
public function addText($text, $styleFont = null, $styleParagraph = null)
|
||||||
$givenText = utf8_encode($text);
|
{
|
||||||
$text = new PHPWord_Section_Text($givenText, $styleFont, $styleParagraph);
|
$givenText = utf8_encode($text);
|
||||||
$this->_elementCollection[] = $text;
|
$text = new PHPWord_Section_Text($givenText, $styleFont, $styleParagraph);
|
||||||
return $text;
|
$this->_elementCollection[] = $text;
|
||||||
}
|
return $text;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a TextBreak Element
|
* Add a TextBreak Element
|
||||||
*
|
*
|
||||||
* @param int $count
|
* @param int $count
|
||||||
*/
|
*/
|
||||||
public function addTextBreak($count = 1) {
|
public function addTextBreak($count = 1)
|
||||||
for($i=1; $i<=$count; $i++) {
|
{
|
||||||
$this->_elementCollection[] = new PHPWord_Section_TextBreak();
|
for ($i = 1; $i <= $count; $i++) {
|
||||||
}
|
$this->_elementCollection[] = new PHPWord_Section_TextBreak();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new TextRun
|
* Create a new TextRun
|
||||||
*
|
*
|
||||||
* @return PHPWord_Section_TextRun
|
* @return PHPWord_Section_TextRun
|
||||||
*/
|
*/
|
||||||
public function createTextRun($styleParagraph = null) {
|
public function createTextRun($styleParagraph = null)
|
||||||
$textRun = new PHPWord_Section_TextRun($styleParagraph);
|
{
|
||||||
$this->_elementCollection[] = $textRun;
|
$textRun = new PHPWord_Section_TextRun($styleParagraph);
|
||||||
return $textRun;
|
$this->_elementCollection[] = $textRun;
|
||||||
}
|
return $textRun;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Table Element
|
* Add a Table Element
|
||||||
*
|
*
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
* @return PHPWord_Section_Table
|
* @return PHPWord_Section_Table
|
||||||
*/
|
*/
|
||||||
public function addTable($style = null) {
|
public function addTable($style = null)
|
||||||
$table = new PHPWord_Section_Table('footer', $this->_footerCount, $style);
|
{
|
||||||
$this->_elementCollection[] = $table;
|
$table = new PHPWord_Section_Table('footer', $this->_footerCount, $style);
|
||||||
return $table;
|
$this->_elementCollection[] = $table;
|
||||||
}
|
return $table;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Image Element
|
* Add a Image Element
|
||||||
*
|
*
|
||||||
* @param string $src
|
* @param string $src
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
* @return PHPWord_Section_Image
|
* @return PHPWord_Section_Image
|
||||||
*/
|
*/
|
||||||
public function addImage($src, $style = null) {
|
public function addImage($src, $style = null)
|
||||||
$image = new PHPWord_Section_Image($src, $style);
|
{
|
||||||
|
$image = new PHPWord_Section_Image($src, $style);
|
||||||
|
|
||||||
if(!is_null($image->getSource())) {
|
if (!is_null($image->getSource())) {
|
||||||
$rID = PHPWord_Media::addFooterMediaElement($this->_footerCount, $src);
|
$rID = PHPWord_Media::addFooterMediaElement($this->_footerCount, $src);
|
||||||
$image->setRelationId($rID);
|
$image->setRelationId($rID);
|
||||||
|
|
||||||
$this->_elementCollection[] = $image;
|
$this->_elementCollection[] = $image;
|
||||||
return $image;
|
return $image;
|
||||||
} else {
|
} else {
|
||||||
trigger_error('Src does not exist or invalid image type.', E_ERROR);
|
trigger_error('Src does not exist or invalid image type.', E_ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a by PHP created Image Element
|
* Add a by PHP created Image Element
|
||||||
*
|
*
|
||||||
* @param string $link
|
* @param string $link
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
* @return PHPWord_Section_MemoryImage
|
* @return PHPWord_Section_MemoryImage
|
||||||
*/
|
*/
|
||||||
public function addMemoryImage($link, $style = null) {
|
public function addMemoryImage($link, $style = null)
|
||||||
$memoryImage = new PHPWord_Section_MemoryImage($link, $style);
|
{
|
||||||
if(!is_null($memoryImage->getSource())) {
|
$memoryImage = new PHPWord_Section_MemoryImage($link, $style);
|
||||||
$rID = PHPWord_Media::addFooterMediaElement($this->_footerCount, $link, $memoryImage);
|
if (!is_null($memoryImage->getSource())) {
|
||||||
$memoryImage->setRelationId($rID);
|
$rID = PHPWord_Media::addFooterMediaElement($this->_footerCount, $link, $memoryImage);
|
||||||
|
$memoryImage->setRelationId($rID);
|
||||||
|
|
||||||
$this->_elementCollection[] = $memoryImage;
|
$this->_elementCollection[] = $memoryImage;
|
||||||
return $memoryImage;
|
return $memoryImage;
|
||||||
} else {
|
} else {
|
||||||
trigger_error('Unsupported image type.');
|
trigger_error('Unsupported image type.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a PreserveText Element
|
* Add a PreserveText Element
|
||||||
*
|
*
|
||||||
* @param string $text
|
* @param string $text
|
||||||
* @param mixed $styleFont
|
* @param mixed $styleFont
|
||||||
* @param mixed $styleParagraph
|
* @param mixed $styleParagraph
|
||||||
* @return PHPWord_Section_Footer_PreserveText
|
* @return PHPWord_Section_Footer_PreserveText
|
||||||
*/
|
*/
|
||||||
public function addPreserveText($text, $styleFont = null, $styleParagraph = null) {
|
public function addPreserveText($text, $styleFont = null, $styleParagraph = null)
|
||||||
$text = utf8_encode($text);
|
{
|
||||||
$ptext = new PHPWord_Section_Footer_PreserveText($text, $styleFont, $styleParagraph);
|
$text = utf8_encode($text);
|
||||||
$this->_elementCollection[] = $ptext;
|
$ptext = new PHPWord_Section_Footer_PreserveText($text, $styleFont, $styleParagraph);
|
||||||
return $ptext;
|
$this->_elementCollection[] = $ptext;
|
||||||
}
|
return $ptext;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Footer Relation ID
|
* Get Footer Relation ID
|
||||||
*/
|
*/
|
||||||
public function getRelationId() {
|
public function getRelationId()
|
||||||
return $this->_rId;
|
{
|
||||||
}
|
return $this->_rId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Footer Relation ID
|
* Set Footer Relation ID
|
||||||
*
|
*
|
||||||
* @param int $rId
|
* @param int $rId
|
||||||
*/
|
*/
|
||||||
public function setRelationId($rId) {
|
public function setRelationId($rId)
|
||||||
$this->_rId = $rId;
|
{
|
||||||
}
|
$this->_rId = $rId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all Footer Elements
|
* Get all Footer Elements
|
||||||
*/
|
*/
|
||||||
public function getElements() {
|
public function getElements()
|
||||||
return $this->_elementCollection;
|
{
|
||||||
}
|
return $this->_elementCollection;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Footer Count
|
* Get Footer Count
|
||||||
*/
|
*/
|
||||||
public function getFooterCount() {
|
public function getFooterCount()
|
||||||
return $this->_footerCount;
|
{
|
||||||
}
|
return $this->_footerCount;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -33,96 +33,100 @@
|
||||||
* @package PHPWord_Section_Footer
|
* @package PHPWord_Section_Footer
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Section_Footer_PreserveText {
|
class PHPWord_Section_Footer_PreserveText
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Text content
|
* Text content
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_text;
|
private $_text;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Text style
|
* Text style
|
||||||
*
|
*
|
||||||
* @var PHPWord_Style_Font
|
* @var PHPWord_Style_Font
|
||||||
*/
|
*/
|
||||||
private $_styleFont;
|
private $_styleFont;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Paragraph style
|
* Paragraph style
|
||||||
*
|
*
|
||||||
* @var PHPWord_Style_Font
|
* @var PHPWord_Style_Font
|
||||||
*/
|
*/
|
||||||
private $_styleParagraph;
|
private $_styleParagraph;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new Preserve Text Element
|
* Create a new Preserve Text Element
|
||||||
*
|
*
|
||||||
* @var string $text
|
* @var string $text
|
||||||
* @var mixed $style
|
* @var mixed $style
|
||||||
*/
|
*/
|
||||||
public function __construct($text = null, $styleFont = null, $styleParagraph = null) {
|
public function __construct($text = null, $styleFont = null, $styleParagraph = null)
|
||||||
// Set font style
|
{
|
||||||
if(is_array($styleFont)) {
|
// Set font style
|
||||||
$this->_styleFont = new PHPWord_Style_Font('text');
|
if (is_array($styleFont)) {
|
||||||
|
$this->_styleFont = new PHPWord_Style_Font('text');
|
||||||
|
|
||||||
foreach($styleFont as $key => $value) {
|
foreach ($styleFont as $key => $value) {
|
||||||
if(substr($key, 0, 1) != '_') {
|
if (substr($key, 0, 1) != '_') {
|
||||||
$key = '_'.$key;
|
$key = '_' . $key;
|
||||||
}
|
}
|
||||||
$this->_styleFont->setStyleValue($key, $value);
|
$this->_styleFont->setStyleValue($key, $value);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$this->_styleFont = $styleFont;
|
$this->_styleFont = $styleFont;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set paragraph style
|
// Set paragraph style
|
||||||
if(is_array($styleParagraph)) {
|
if (is_array($styleParagraph)) {
|
||||||
$this->_styleParagraph = new PHPWord_Style_Paragraph();
|
$this->_styleParagraph = new PHPWord_Style_Paragraph();
|
||||||
|
|
||||||
foreach($styleParagraph as $key => $value) {
|
foreach ($styleParagraph as $key => $value) {
|
||||||
if(substr($key, 0, 1) != '_') {
|
if (substr($key, 0, 1) != '_') {
|
||||||
$key = '_'.$key;
|
$key = '_' . $key;
|
||||||
}
|
}
|
||||||
$this->_styleParagraph->setStyleValue($key, $value);
|
$this->_styleParagraph->setStyleValue($key, $value);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$this->_styleParagraph = $styleParagraph;
|
$this->_styleParagraph = $styleParagraph;
|
||||||
}
|
}
|
||||||
|
|
||||||
$pattern = '/({.*?})/';
|
$pattern = '/({.*?})/';
|
||||||
$this->_text = preg_split($pattern, $text, null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
|
$this->_text = preg_split($pattern, $text, null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Text style
|
* Get Text style
|
||||||
*
|
*
|
||||||
* @return PHPWord_Style_Font
|
* @return PHPWord_Style_Font
|
||||||
*/
|
*/
|
||||||
public function getFontStyle() {
|
public function getFontStyle()
|
||||||
return $this->_styleFont;
|
{
|
||||||
}
|
return $this->_styleFont;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Paragraph style
|
* Get Paragraph style
|
||||||
*
|
*
|
||||||
* @return PHPWord_Style_Paragraph
|
* @return PHPWord_Style_Paragraph
|
||||||
*/
|
*/
|
||||||
public function getParagraphStyle() {
|
public function getParagraphStyle()
|
||||||
return $this->_styleParagraph;
|
{
|
||||||
}
|
return $this->_styleParagraph;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Text content
|
* Get Text content
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getText() {
|
public function getText()
|
||||||
return $this->_text;
|
{
|
||||||
}
|
return $this->_text;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
|
||||||
|
|
@ -33,190 +33,203 @@
|
||||||
* @package PHPWord_Section
|
* @package PHPWord_Section
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Section_Header {
|
class PHPWord_Section_Header
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Header Count
|
* Header Count
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_headerCount;
|
private $_headerCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Header Relation ID
|
* Header Relation ID
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_rId;
|
private $_rId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Header Element Collection
|
* Header Element Collection
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_elementCollection = array();
|
private $_elementCollection = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new Header
|
* Create a new Header
|
||||||
*/
|
*/
|
||||||
public function __construct($sectionCount) {
|
public function __construct($sectionCount)
|
||||||
$this->_headerCount = $sectionCount;
|
{
|
||||||
}
|
$this->_headerCount = $sectionCount;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Text Element
|
* Add a Text Element
|
||||||
*
|
*
|
||||||
* @param string $text
|
* @param string $text
|
||||||
* @param mixed $styleFont
|
* @param mixed $styleFont
|
||||||
* @param mixed $styleParagraph
|
* @param mixed $styleParagraph
|
||||||
* @return PHPWord_Section_Text
|
* @return PHPWord_Section_Text
|
||||||
*/
|
*/
|
||||||
public function addText($text, $styleFont = null, $styleParagraph = null) {
|
public function addText($text, $styleFont = null, $styleParagraph = null)
|
||||||
$givenText = utf8_encode($text);
|
{
|
||||||
$text = new PHPWord_Section_Text($givenText, $styleFont, $styleParagraph);
|
$givenText = utf8_encode($text);
|
||||||
$this->_elementCollection[] = $text;
|
$text = new PHPWord_Section_Text($givenText, $styleFont, $styleParagraph);
|
||||||
return $text;
|
$this->_elementCollection[] = $text;
|
||||||
}
|
return $text;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a TextBreak Element
|
* Add a TextBreak Element
|
||||||
*
|
*
|
||||||
* @param int $count
|
* @param int $count
|
||||||
*/
|
*/
|
||||||
public function addTextBreak($count = 1) {
|
public function addTextBreak($count = 1)
|
||||||
for($i=1; $i<=$count; $i++) {
|
{
|
||||||
$this->_elementCollection[] = new PHPWord_Section_TextBreak();
|
for ($i = 1; $i <= $count; $i++) {
|
||||||
}
|
$this->_elementCollection[] = new PHPWord_Section_TextBreak();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new TextRun
|
* Create a new TextRun
|
||||||
*
|
*
|
||||||
* @return PHPWord_Section_TextRun
|
* @return PHPWord_Section_TextRun
|
||||||
*/
|
*/
|
||||||
public function createTextRun($styleParagraph = null) {
|
public function createTextRun($styleParagraph = null)
|
||||||
$textRun = new PHPWord_Section_TextRun($styleParagraph);
|
{
|
||||||
$this->_elementCollection[] = $textRun;
|
$textRun = new PHPWord_Section_TextRun($styleParagraph);
|
||||||
return $textRun;
|
$this->_elementCollection[] = $textRun;
|
||||||
}
|
return $textRun;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Table Element
|
* Add a Table Element
|
||||||
*
|
*
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
* @return PHPWord_Section_Table
|
* @return PHPWord_Section_Table
|
||||||
*/
|
*/
|
||||||
public function addTable($style = null) {
|
public function addTable($style = null)
|
||||||
$table = new PHPWord_Section_Table('header', $this->_headerCount, $style);
|
{
|
||||||
$this->_elementCollection[] = $table;
|
$table = new PHPWord_Section_Table('header', $this->_headerCount, $style);
|
||||||
return $table;
|
$this->_elementCollection[] = $table;
|
||||||
}
|
return $table;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Image Element
|
* Add a Image Element
|
||||||
*
|
*
|
||||||
* @param string $src
|
* @param string $src
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
* @return PHPWord_Section_Image
|
* @return PHPWord_Section_Image
|
||||||
*/
|
*/
|
||||||
public function addImage($src, $style = null) {
|
public function addImage($src, $style = null)
|
||||||
$image = new PHPWord_Section_Image($src, $style);
|
{
|
||||||
|
$image = new PHPWord_Section_Image($src, $style);
|
||||||
|
|
||||||
if(!is_null($image->getSource())) {
|
if (!is_null($image->getSource())) {
|
||||||
$rID = PHPWord_Media::addHeaderMediaElement($this->_headerCount, $src);
|
$rID = PHPWord_Media::addHeaderMediaElement($this->_headerCount, $src);
|
||||||
$image->setRelationId($rID);
|
$image->setRelationId($rID);
|
||||||
|
|
||||||
$this->_elementCollection[] = $image;
|
$this->_elementCollection[] = $image;
|
||||||
return $image;
|
return $image;
|
||||||
} else {
|
} else {
|
||||||
trigger_error('Src does not exist or invalid image type.', E_ERROR);
|
trigger_error('Src does not exist or invalid image type.', E_ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a by PHP created Image Element
|
* Add a by PHP created Image Element
|
||||||
*
|
*
|
||||||
* @param string $link
|
* @param string $link
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
* @return PHPWord_Section_MemoryImage
|
* @return PHPWord_Section_MemoryImage
|
||||||
*/
|
*/
|
||||||
public function addMemoryImage($link, $style = null) {
|
public function addMemoryImage($link, $style = null)
|
||||||
$memoryImage = new PHPWord_Section_MemoryImage($link, $style);
|
{
|
||||||
if(!is_null($memoryImage->getSource())) {
|
$memoryImage = new PHPWord_Section_MemoryImage($link, $style);
|
||||||
$rID = PHPWord_Media::addHeaderMediaElement($this->_headerCount, $link, $memoryImage);
|
if (!is_null($memoryImage->getSource())) {
|
||||||
$memoryImage->setRelationId($rID);
|
$rID = PHPWord_Media::addHeaderMediaElement($this->_headerCount, $link, $memoryImage);
|
||||||
|
$memoryImage->setRelationId($rID);
|
||||||
|
|
||||||
$this->_elementCollection[] = $memoryImage;
|
$this->_elementCollection[] = $memoryImage;
|
||||||
return $memoryImage;
|
return $memoryImage;
|
||||||
} else {
|
} else {
|
||||||
trigger_error('Unsupported image type.');
|
trigger_error('Unsupported image type.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a PreserveText Element
|
* Add a PreserveText Element
|
||||||
*
|
*
|
||||||
* @param string $text
|
* @param string $text
|
||||||
* @param mixed $styleFont
|
* @param mixed $styleFont
|
||||||
* @param mixed $styleParagraph
|
* @param mixed $styleParagraph
|
||||||
* @return PHPWord_Section_Footer_PreserveText
|
* @return PHPWord_Section_Footer_PreserveText
|
||||||
*/
|
*/
|
||||||
public function addPreserveText($text, $styleFont = null, $styleParagraph = null) {
|
public function addPreserveText($text, $styleFont = null, $styleParagraph = null)
|
||||||
$text = utf8_encode($text);
|
{
|
||||||
$ptext = new PHPWord_Section_Footer_PreserveText($text, $styleFont, $styleParagraph);
|
$text = utf8_encode($text);
|
||||||
$this->_elementCollection[] = $ptext;
|
$ptext = new PHPWord_Section_Footer_PreserveText($text, $styleFont, $styleParagraph);
|
||||||
return $ptext;
|
$this->_elementCollection[] = $ptext;
|
||||||
}
|
return $ptext;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Watermark Element
|
* Add a Watermark Element
|
||||||
*
|
*
|
||||||
* @param string $src
|
* @param string $src
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
* @return PHPWord_Section_Image
|
* @return PHPWord_Section_Image
|
||||||
*/
|
*/
|
||||||
public function addWatermark($src, $style = null) {
|
public function addWatermark($src, $style = null)
|
||||||
$image = new PHPWord_Section_Image($src, $style, true);
|
{
|
||||||
|
$image = new PHPWord_Section_Image($src, $style, true);
|
||||||
|
|
||||||
if(!is_null($image->getSource())) {
|
if (!is_null($image->getSource())) {
|
||||||
$rID = PHPWord_Media::addHeaderMediaElement($this->_headerCount, $src);
|
$rID = PHPWord_Media::addHeaderMediaElement($this->_headerCount, $src);
|
||||||
$image->setRelationId($rID);
|
$image->setRelationId($rID);
|
||||||
|
|
||||||
$this->_elementCollection[] = $image;
|
$this->_elementCollection[] = $image;
|
||||||
return $image;
|
return $image;
|
||||||
} else {
|
} else {
|
||||||
trigger_error('Src does not exist or invalid image type.', E_ERROR);
|
trigger_error('Src does not exist or invalid image type.', E_ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Header Relation ID
|
* Get Header Relation ID
|
||||||
*/
|
*/
|
||||||
public function getRelationId() {
|
public function getRelationId()
|
||||||
return $this->_rId;
|
{
|
||||||
}
|
return $this->_rId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Header Relation ID
|
* Set Header Relation ID
|
||||||
*
|
*
|
||||||
* @param int $rId
|
* @param int $rId
|
||||||
*/
|
*/
|
||||||
public function setRelationId($rId) {
|
public function setRelationId($rId)
|
||||||
$this->_rId = $rId;
|
{
|
||||||
}
|
$this->_rId = $rId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all Header Elements
|
* Get all Header Elements
|
||||||
*/
|
*/
|
||||||
public function getElements() {
|
public function getElements()
|
||||||
return $this->_elementCollection;
|
{
|
||||||
}
|
return $this->_elementCollection;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Header Count
|
* Get Header Count
|
||||||
*/
|
*/
|
||||||
public function getHeaderCount() {
|
public function getHeaderCount()
|
||||||
return $this->_headerCount;
|
{
|
||||||
}
|
return $this->_headerCount;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
|
||||||
|
|
@ -33,136 +33,145 @@
|
||||||
* @package PHPWord_Section
|
* @package PHPWord_Section
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Section_Image {
|
class PHPWord_Section_Image
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Image Src
|
* Image Src
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_src;
|
private $_src;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Image Style
|
* Image Style
|
||||||
*
|
*
|
||||||
* @var PHPWord_Style_Image
|
* @var PHPWord_Style_Image
|
||||||
*/
|
*/
|
||||||
private $_style;
|
private $_style;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Image Relation ID
|
* Image Relation ID
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_rId;
|
private $_rId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Is Watermark
|
* Is Watermark
|
||||||
*
|
*
|
||||||
* @var bool
|
* @var bool
|
||||||
*/
|
*/
|
||||||
private $_isWatermark;
|
private $_isWatermark;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new Image
|
* Create a new Image
|
||||||
*
|
*
|
||||||
* @param string $src
|
* @param string $src
|
||||||
* @param mixed style
|
* @param mixed style
|
||||||
*/
|
*/
|
||||||
public function __construct($src, $style = null, $isWatermark = false) {
|
public function __construct($src, $style = null, $isWatermark = false)
|
||||||
$_supportedImageTypes = array('jpg', 'jpeg', 'gif', 'png', 'bmp', 'tif', 'tiff');
|
{
|
||||||
|
$_supportedImageTypes = array('jpg', 'jpeg', 'gif', 'png', 'bmp', 'tif', 'tiff');
|
||||||
|
|
||||||
$inf = pathinfo($src);
|
$inf = pathinfo($src);
|
||||||
$ext = strtolower($inf['extension']);
|
$ext = strtolower($inf['extension']);
|
||||||
|
|
||||||
if(file_exists($src) && in_array($ext, $_supportedImageTypes)) {
|
if (file_exists($src) && in_array($ext, $_supportedImageTypes)) {
|
||||||
$this->_src = $src;
|
$this->_src = $src;
|
||||||
$this->_isWatermark = $isWatermark;
|
$this->_isWatermark = $isWatermark;
|
||||||
$this->_style = new PHPWord_Style_Image();
|
$this->_style = new PHPWord_Style_Image();
|
||||||
|
|
||||||
if(!is_null($style) && is_array($style)) {
|
if (!is_null($style) && is_array($style)) {
|
||||||
foreach($style as $key => $value) {
|
foreach ($style as $key => $value) {
|
||||||
if(substr($key, 0, 1) != '_') {
|
if (substr($key, 0, 1) != '_') {
|
||||||
$key = '_'.$key;
|
$key = '_' . $key;
|
||||||
}
|
}
|
||||||
$this->_style->setStyleValue($key, $value);
|
$this->_style->setStyleValue($key, $value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if($this->_style->getWidth() == null && $this->_style->getHeight() == null) {
|
if ($this->_style->getWidth() == null && $this->_style->getHeight() == null) {
|
||||||
$imgData = getimagesize($this->_src);
|
$imgData = getimagesize($this->_src);
|
||||||
$this->_style->setWidth($imgData[0]);
|
$this->_style->setWidth($imgData[0]);
|
||||||
$this->_style->setHeight($imgData[1]);
|
$this->_style->setHeight($imgData[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Image style
|
* Get Image style
|
||||||
*
|
*
|
||||||
* @return PHPWord_Style_Image
|
* @return PHPWord_Style_Image
|
||||||
*/
|
*/
|
||||||
public function getStyle() {
|
public function getStyle()
|
||||||
return $this->_style;
|
{
|
||||||
}
|
return $this->_style;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Image Relation ID
|
* Get Image Relation ID
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getRelationId() {
|
public function getRelationId()
|
||||||
return $this->_rId;
|
{
|
||||||
}
|
return $this->_rId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Image Relation ID
|
* Set Image Relation ID
|
||||||
*
|
*
|
||||||
* @param int $rId
|
* @param int $rId
|
||||||
*/
|
*/
|
||||||
public function setRelationId($rId) {
|
public function setRelationId($rId)
|
||||||
$this->_rId = $rId;
|
{
|
||||||
}
|
$this->_rId = $rId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Image Source
|
* Get Image Source
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getSource() {
|
public function getSource()
|
||||||
return $this->_src;
|
{
|
||||||
}
|
return $this->_src;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Image Media ID
|
* Get Image Media ID
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getMediaId() {
|
public function getMediaId()
|
||||||
return md5($this->_src);
|
{
|
||||||
}
|
return md5($this->_src);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get IsWatermark
|
* Get IsWatermark
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getIsWatermark() {
|
public function getIsWatermark()
|
||||||
return $this->_isWatermark;
|
{
|
||||||
}
|
return $this->_isWatermark;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set IsWatermark
|
* Set IsWatermark
|
||||||
*
|
*
|
||||||
* @param bool $pValue
|
* @param bool $pValue
|
||||||
*/
|
*/
|
||||||
public function setIsWatermark($pValue) {
|
public function setIsWatermark($pValue)
|
||||||
$this->_isWatermark = $pValue;
|
{
|
||||||
}
|
$this->_isWatermark = $pValue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
|
||||||
|
|
@ -33,139 +33,146 @@
|
||||||
* @package PHPWord_Section
|
* @package PHPWord_Section
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Section_Link {
|
class PHPWord_Section_Link
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Link source
|
* Link source
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_linkSrc;
|
private $_linkSrc;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Link name
|
* Link name
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_linkName;
|
private $_linkName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Link Relation ID
|
* Link Relation ID
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_rId;
|
private $_rId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Link style
|
* Link style
|
||||||
*
|
*
|
||||||
* @var PHPWord_Style_Font
|
* @var PHPWord_Style_Font
|
||||||
*/
|
*/
|
||||||
private $_styleFont;
|
private $_styleFont;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Paragraph style
|
* Paragraph style
|
||||||
*
|
*
|
||||||
* @var PHPWord_Style_Font
|
* @var PHPWord_Style_Font
|
||||||
*/
|
*/
|
||||||
private $_styleParagraph;
|
private $_styleParagraph;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new Link Element
|
* Create a new Link Element
|
||||||
*
|
*
|
||||||
* @var string $linkSrc
|
* @var string $linkSrc
|
||||||
* @var string $linkName
|
* @var string $linkName
|
||||||
* @var mixed $styleFont
|
* @var mixed $styleFont
|
||||||
* @var mixed $styleParagraph
|
* @var mixed $styleParagraph
|
||||||
*/
|
*/
|
||||||
public function __construct($linkSrc, $linkName = null, $styleFont = null, $styleParagraph = null) {
|
public function __construct($linkSrc, $linkName = null, $styleFont = null, $styleParagraph = null)
|
||||||
$this->_linkSrc = $linkSrc;
|
{
|
||||||
$this->_linkName = $linkName;
|
$this->_linkSrc = $linkSrc;
|
||||||
|
$this->_linkName = $linkName;
|
||||||
|
|
||||||
// Set font style
|
// Set font style
|
||||||
if(is_array($styleFont)) {
|
if (is_array($styleFont)) {
|
||||||
$this->_styleFont = new PHPWord_Style_Font('text');
|
$this->_styleFont = new PHPWord_Style_Font('text');
|
||||||
|
|
||||||
foreach($styleFont as $key => $value) {
|
foreach ($styleFont as $key => $value) {
|
||||||
if(substr($key, 0, 1) != '_') {
|
if (substr($key, 0, 1) != '_') {
|
||||||
$key = '_'.$key;
|
$key = '_' . $key;
|
||||||
}
|
}
|
||||||
$this->_styleFont->setStyleValue($key, $value);
|
$this->_styleFont->setStyleValue($key, $value);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$this->_styleFont = $styleFont;
|
$this->_styleFont = $styleFont;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set paragraph style
|
// Set paragraph style
|
||||||
if(is_array($styleParagraph)) {
|
if (is_array($styleParagraph)) {
|
||||||
$this->_styleParagraph = new PHPWord_Style_Paragraph();
|
$this->_styleParagraph = new PHPWord_Style_Paragraph();
|
||||||
|
|
||||||
foreach($styleParagraph as $key => $value) {
|
foreach ($styleParagraph as $key => $value) {
|
||||||
if(substr($key, 0, 1) != '_') {
|
if (substr($key, 0, 1) != '_') {
|
||||||
$key = '_'.$key;
|
$key = '_' . $key;
|
||||||
}
|
}
|
||||||
$this->_styleParagraph->setStyleValue($key, $value);
|
$this->_styleParagraph->setStyleValue($key, $value);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$this->_styleParagraph = $styleParagraph;
|
$this->_styleParagraph = $styleParagraph;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Link Relation ID
|
* Get Link Relation ID
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getRelationId() {
|
public function getRelationId()
|
||||||
return $this->_rId;
|
{
|
||||||
}
|
return $this->_rId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Link Relation ID
|
* Set Link Relation ID
|
||||||
*
|
*
|
||||||
* @param int $rId
|
* @param int $rId
|
||||||
*/
|
*/
|
||||||
public function setRelationId($rId) {
|
public function setRelationId($rId)
|
||||||
$this->_rId = $rId;
|
{
|
||||||
}
|
$this->_rId = $rId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Link source
|
* Get Link source
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getLinkSrc() {
|
public function getLinkSrc()
|
||||||
return $this->_linkSrc;
|
{
|
||||||
}
|
return $this->_linkSrc;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Link name
|
* Get Link name
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getLinkName() {
|
public function getLinkName()
|
||||||
return $this->_linkName;
|
{
|
||||||
}
|
return $this->_linkName;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Text style
|
* Get Text style
|
||||||
*
|
*
|
||||||
* @return PHPWord_Style_Font
|
* @return PHPWord_Style_Font
|
||||||
*/
|
*/
|
||||||
public function getFontStyle() {
|
public function getFontStyle()
|
||||||
return $this->_styleFont;
|
{
|
||||||
}
|
return $this->_styleFont;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Paragraph style
|
* Get Paragraph style
|
||||||
*
|
*
|
||||||
* @return PHPWord_Style_Paragraph
|
* @return PHPWord_Style_Paragraph
|
||||||
*/
|
*/
|
||||||
public function getParagraphStyle() {
|
public function getParagraphStyle()
|
||||||
return $this->_styleParagraph;
|
{
|
||||||
}
|
return $this->_styleParagraph;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -33,72 +33,76 @@
|
||||||
* @package PHPWord_Section
|
* @package PHPWord_Section
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Section_ListItem {
|
class PHPWord_Section_ListItem
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ListItem Style
|
* ListItem Style
|
||||||
*
|
*
|
||||||
* @var PHPWord_Style_ListItem
|
* @var PHPWord_Style_ListItem
|
||||||
*/
|
*/
|
||||||
private $_style;
|
private $_style;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Textrun
|
* Textrun
|
||||||
*
|
*
|
||||||
* @var PHPWord_Section_Text
|
* @var PHPWord_Section_Text
|
||||||
*/
|
*/
|
||||||
private $_textObject;
|
private $_textObject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ListItem Depth
|
* ListItem Depth
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_depth;
|
private $_depth;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new ListItem
|
* Create a new ListItem
|
||||||
*
|
*
|
||||||
* @param string $text
|
* @param string $text
|
||||||
* @param int $depth
|
* @param int $depth
|
||||||
* @param mixed $styleText
|
* @param mixed $styleText
|
||||||
* @param mixed $styleList
|
* @param mixed $styleList
|
||||||
*/
|
*/
|
||||||
public function __construct($text, $depth = 0, $styleFont = null, $styleList = null, $styleParagraph = null) {
|
public function __construct($text, $depth = 0, $styleFont = null, $styleList = null, $styleParagraph = null)
|
||||||
$this->_style = new PHPWord_Style_ListItem();
|
{
|
||||||
$this->_textObject = new PHPWord_Section_Text($text, $styleFont, $styleParagraph);
|
$this->_style = new PHPWord_Style_ListItem();
|
||||||
$this->_depth = $depth;
|
$this->_textObject = new PHPWord_Section_Text($text, $styleFont, $styleParagraph);
|
||||||
|
$this->_depth = $depth;
|
||||||
|
|
||||||
if(!is_null($styleList) && is_array($styleList)) {
|
if (!is_null($styleList) && is_array($styleList)) {
|
||||||
foreach($styleList as $key => $value) {
|
foreach ($styleList as $key => $value) {
|
||||||
if(substr($key, 0, 1) != '_') {
|
if (substr($key, 0, 1) != '_') {
|
||||||
$key = '_'.$key;
|
$key = '_' . $key;
|
||||||
}
|
}
|
||||||
$this->_style->setStyleValue($key, $value);
|
$this->_style->setStyleValue($key, $value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get ListItem style
|
* Get ListItem style
|
||||||
*/
|
*/
|
||||||
public function getStyle() {
|
public function getStyle()
|
||||||
return $this->_style;
|
{
|
||||||
}
|
return $this->_style;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get ListItem TextRun
|
* Get ListItem TextRun
|
||||||
*/
|
*/
|
||||||
public function getTextObject() {
|
public function getTextObject()
|
||||||
return $this->_textObject;
|
{
|
||||||
}
|
return $this->_textObject;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get ListItem depth
|
* Get ListItem depth
|
||||||
*/
|
*/
|
||||||
public function getDepth() {
|
public function getDepth()
|
||||||
return $this->_depth;
|
{
|
||||||
}
|
return $this->_depth;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -33,199 +33,211 @@
|
||||||
* @package PHPWord_Section
|
* @package PHPWord_Section
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Section_MemoryImage {
|
class PHPWord_Section_MemoryImage
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Image Src
|
* Image Src
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_src;
|
private $_src;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Image Style
|
* Image Style
|
||||||
*
|
*
|
||||||
* @var PHPWord_Style_Image
|
* @var PHPWord_Style_Image
|
||||||
*/
|
*/
|
||||||
private $_style;
|
private $_style;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Image Relation ID
|
* Image Relation ID
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_rId;
|
private $_rId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Image Type
|
* Image Type
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_imageType;
|
private $_imageType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Image Create function
|
* Image Create function
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_imageCreateFunc;
|
private $_imageCreateFunc;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Image function
|
* Image function
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_imageFunc;
|
private $_imageFunc;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Image function
|
* Image function
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_imageExtension;
|
private $_imageExtension;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new Image
|
* Create a new Image
|
||||||
*
|
*
|
||||||
* @param string $src
|
* @param string $src
|
||||||
* @param mixed style
|
* @param mixed style
|
||||||
*/
|
*/
|
||||||
public function __construct($src, $style = null) {
|
public function __construct($src, $style = null)
|
||||||
$imgData = getimagesize($src);
|
{
|
||||||
$this->_imageType = $imgData['mime'];
|
$imgData = getimagesize($src);
|
||||||
|
$this->_imageType = $imgData['mime'];
|
||||||
|
|
||||||
$_supportedImageTypes = array('image/jpeg', 'image/gif', 'image/png');
|
$_supportedImageTypes = array('image/jpeg', 'image/gif', 'image/png');
|
||||||
|
|
||||||
if(in_array($this->_imageType, $_supportedImageTypes)) {
|
if (in_array($this->_imageType, $_supportedImageTypes)) {
|
||||||
$this->_src = $src;
|
$this->_src = $src;
|
||||||
$this->_style = new PHPWord_Style_Image();
|
$this->_style = new PHPWord_Style_Image();
|
||||||
|
|
||||||
if(!is_null($style) && is_array($style)) {
|
if (!is_null($style) && is_array($style)) {
|
||||||
foreach($style as $key => $value) {
|
foreach ($style as $key => $value) {
|
||||||
if(substr($key, 0, 1) != '_') {
|
if (substr($key, 0, 1) != '_') {
|
||||||
$key = '_'.$key;
|
$key = '_' . $key;
|
||||||
}
|
}
|
||||||
$this->_style->setStyleValue($key, $value);
|
$this->_style->setStyleValue($key, $value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if($this->_style->getWidth() == null && $this->_style->getHeight() == null) {
|
if ($this->_style->getWidth() == null && $this->_style->getHeight() == null) {
|
||||||
$this->_style->setWidth($imgData[0]);
|
$this->_style->setWidth($imgData[0]);
|
||||||
$this->_style->setHeight($imgData[1]);
|
$this->_style->setHeight($imgData[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->_setFunctions();
|
$this->_setFunctions();
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Functions
|
* Set Functions
|
||||||
*/
|
*/
|
||||||
private function _setFunctions() {
|
private function _setFunctions()
|
||||||
switch($this->_imageType) {
|
{
|
||||||
case 'image/png':
|
switch ($this->_imageType) {
|
||||||
$this->_imageCreateFunc = 'imagecreatefrompng';
|
case 'image/png':
|
||||||
$this->_imageFunc = 'imagepng';
|
$this->_imageCreateFunc = 'imagecreatefrompng';
|
||||||
$this->_imageExtension = 'png';
|
$this->_imageFunc = 'imagepng';
|
||||||
break;
|
$this->_imageExtension = 'png';
|
||||||
case 'image/gif':
|
break;
|
||||||
$this->_imageCreateFunc = 'imagecreatefromgif';
|
case 'image/gif':
|
||||||
$this->_imageFunc = 'imagegif';
|
$this->_imageCreateFunc = 'imagecreatefromgif';
|
||||||
$this->_imageExtension = 'gif';
|
$this->_imageFunc = 'imagegif';
|
||||||
break;
|
$this->_imageExtension = 'gif';
|
||||||
case 'image/jpeg': case 'image/jpg':
|
break;
|
||||||
$this->_imageCreateFunc = 'imagecreatefromjpeg';
|
case 'image/jpeg':
|
||||||
$this->_imageFunc = 'imagejpeg';
|
case 'image/jpg':
|
||||||
$this->_imageExtension = 'jpg';
|
$this->_imageCreateFunc = 'imagecreatefromjpeg';
|
||||||
break;
|
$this->_imageFunc = 'imagejpeg';
|
||||||
}
|
$this->_imageExtension = 'jpg';
|
||||||
}
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Image style
|
* Get Image style
|
||||||
*
|
*
|
||||||
* @return PHPWord_Style_Image
|
* @return PHPWord_Style_Image
|
||||||
*/
|
*/
|
||||||
public function getStyle() {
|
public function getStyle()
|
||||||
return $this->_style;
|
{
|
||||||
}
|
return $this->_style;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Image Relation ID
|
* Get Image Relation ID
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getRelationId() {
|
public function getRelationId()
|
||||||
return $this->_rId;
|
{
|
||||||
}
|
return $this->_rId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Image Relation ID
|
* Set Image Relation ID
|
||||||
*
|
*
|
||||||
* @param int $rId
|
* @param int $rId
|
||||||
*/
|
*/
|
||||||
public function setRelationId($rId) {
|
public function setRelationId($rId)
|
||||||
$this->_rId = $rId;
|
{
|
||||||
}
|
$this->_rId = $rId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Image Source
|
* Get Image Source
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getSource() {
|
public function getSource()
|
||||||
return $this->_src;
|
{
|
||||||
}
|
return $this->_src;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Image Media ID
|
* Get Image Media ID
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getMediaId() {
|
public function getMediaId()
|
||||||
return md5($this->_src);
|
{
|
||||||
}
|
return md5($this->_src);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Image Type
|
* Get Image Type
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getImageType() {
|
public function getImageType()
|
||||||
return $this->_imageType;
|
{
|
||||||
}
|
return $this->_imageType;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Image Create Function
|
* Get Image Create Function
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getImageCreateFunction() {
|
public function getImageCreateFunction()
|
||||||
return $this->_imageCreateFunc;
|
{
|
||||||
}
|
return $this->_imageCreateFunc;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Image Function
|
* Get Image Function
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getImageFunction() {
|
public function getImageFunction()
|
||||||
return $this->_imageFunc;
|
{
|
||||||
}
|
return $this->_imageFunc;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Image Extension
|
* Get Image Extension
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getImageExtension() {
|
public function getImageExtension()
|
||||||
return $this->_imageExtension;
|
{
|
||||||
}
|
return $this->_imageExtension;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -33,143 +33,152 @@
|
||||||
* @package PHPWord_Section
|
* @package PHPWord_Section
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Section_Object {
|
class PHPWord_Section_Object
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ole-Object Src
|
* Ole-Object Src
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_src;
|
private $_src;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Image Style
|
* Image Style
|
||||||
*
|
*
|
||||||
* @var PHPWord_Style_Image
|
* @var PHPWord_Style_Image
|
||||||
*/
|
*/
|
||||||
private $_style;
|
private $_style;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Object Relation ID
|
* Object Relation ID
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_rId;
|
private $_rId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Image Relation ID
|
* Image Relation ID
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_rIdImg;
|
private $_rIdImg;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Object ID
|
* Object ID
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_objId;
|
private $_objId;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new Ole-Object Element
|
* Create a new Ole-Object Element
|
||||||
*
|
*
|
||||||
* @param string $src
|
* @param string $src
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
*/
|
*/
|
||||||
public function __construct($src, $style = null) {
|
public function __construct($src, $style = null)
|
||||||
$_supportedObjectTypes = array('xls', 'doc', 'ppt');
|
{
|
||||||
$inf = pathinfo($src);
|
$_supportedObjectTypes = array('xls', 'doc', 'ppt');
|
||||||
|
$inf = pathinfo($src);
|
||||||
|
|
||||||
if(file_exists($src) && in_array($inf['extension'], $_supportedObjectTypes)) {
|
if (file_exists($src) && in_array($inf['extension'], $_supportedObjectTypes)) {
|
||||||
$this->_src = $src;
|
$this->_src = $src;
|
||||||
$this->_style = new PHPWord_Style_Image();
|
$this->_style = new PHPWord_Style_Image();
|
||||||
|
|
||||||
if(!is_null($style) && is_array($style)) {
|
if (!is_null($style) && is_array($style)) {
|
||||||
foreach($style as $key => $value) {
|
foreach ($style as $key => $value) {
|
||||||
if(substr($key, 0, 1) != '_') {
|
if (substr($key, 0, 1) != '_') {
|
||||||
$key = '_'.$key;
|
$key = '_' . $key;
|
||||||
}
|
}
|
||||||
$this->_style->setStyleValue($key, $value);
|
$this->_style->setStyleValue($key, $value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Image style
|
* Get Image style
|
||||||
*
|
*
|
||||||
* @return PHPWord_Style_Image
|
* @return PHPWord_Style_Image
|
||||||
*/
|
*/
|
||||||
public function getStyle() {
|
public function getStyle()
|
||||||
return $this->_style;
|
{
|
||||||
}
|
return $this->_style;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Source
|
* Get Source
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getSource() {
|
public function getSource()
|
||||||
return $this->_src;
|
{
|
||||||
}
|
return $this->_src;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Object Relation ID
|
* Get Object Relation ID
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getRelationId() {
|
public function getRelationId()
|
||||||
return $this->_rId;
|
{
|
||||||
}
|
return $this->_rId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Object Relation ID
|
* Set Object Relation ID
|
||||||
*
|
*
|
||||||
* @param int $rId
|
* @param int $rId
|
||||||
*/
|
*/
|
||||||
public function setRelationId($rId) {
|
public function setRelationId($rId)
|
||||||
$this->_rId = $rId;
|
{
|
||||||
}
|
$this->_rId = $rId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Image Relation ID
|
* Get Image Relation ID
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getImageRelationId() {
|
public function getImageRelationId()
|
||||||
return $this->_rIdImg;
|
{
|
||||||
}
|
return $this->_rIdImg;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Image Relation ID
|
* Set Image Relation ID
|
||||||
*
|
*
|
||||||
* @param int $rId
|
* @param int $rId
|
||||||
*/
|
*/
|
||||||
public function setImageRelationId($rId) {
|
public function setImageRelationId($rId)
|
||||||
$this->_rIdImg = $rId;
|
{
|
||||||
}
|
$this->_rIdImg = $rId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Object ID
|
* Get Object ID
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getObjectId() {
|
public function getObjectId()
|
||||||
return $this->_objId;
|
{
|
||||||
}
|
return $this->_objId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Object ID
|
* Set Object ID
|
||||||
*
|
*
|
||||||
* @param int $objId
|
* @param int $objId
|
||||||
*/
|
*/
|
||||||
public function setObjectId($objId) {
|
public function setObjectId($objId)
|
||||||
$this->_objId = $objId;
|
{
|
||||||
}
|
$this->_objId = $objId;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
|
||||||
|
|
@ -33,13 +33,14 @@
|
||||||
* @package PHPWord_Section
|
* @package PHPWord_Section
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Section_PageBreak {
|
class PHPWord_Section_PageBreak
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new PageBreak Element
|
* Create a new PageBreak Element
|
||||||
*/
|
*/
|
||||||
public function __construct() {
|
public function __construct()
|
||||||
// nothing
|
{
|
||||||
}
|
// nothing
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -33,483 +33,518 @@
|
||||||
* @package PHPWord_Section
|
* @package PHPWord_Section
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Section_Settings {
|
class PHPWord_Section_Settings
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default Page Size Width
|
* Default Page Size Width
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_defaultPageSizeW = 11906;
|
private $_defaultPageSizeW = 11906;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default Page Size Height
|
* Default Page Size Height
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_defaultPageSizeH = 16838;
|
private $_defaultPageSizeH = 16838;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page Orientation
|
* Page Orientation
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_orientation;
|
private $_orientation;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page Margin Top
|
* Page Margin Top
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_marginTop;
|
private $_marginTop;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page Margin Left
|
* Page Margin Left
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_marginLeft;
|
private $_marginLeft;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page Margin Right
|
* Page Margin Right
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_marginRight;
|
private $_marginRight;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page Margin Bottom
|
* Page Margin Bottom
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_marginBottom;
|
private $_marginBottom;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page Size Width
|
* Page Size Width
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_pageSizeW;
|
private $_pageSizeW;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page Size Height
|
* Page Size Height
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_pageSizeH;
|
private $_pageSizeH;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page Border Top Size
|
* Page Border Top Size
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_borderTopSize;
|
private $_borderTopSize;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page Border Top Color
|
* Page Border Top Color
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_borderTopColor;
|
private $_borderTopColor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page Border Left Size
|
* Page Border Left Size
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_borderLeftSize;
|
private $_borderLeftSize;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page Border Left Color
|
* Page Border Left Color
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_borderLeftColor;
|
private $_borderLeftColor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page Border Right Size
|
* Page Border Right Size
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_borderRightSize;
|
private $_borderRightSize;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page Border Right Color
|
* Page Border Right Color
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_borderRightColor;
|
private $_borderRightColor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page Border Bottom Size
|
* Page Border Bottom Size
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_borderBottomSize;
|
private $_borderBottomSize;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page Border Bottom Color
|
* Page Border Bottom Color
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_borderBottomColor;
|
private $_borderBottomColor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create new Section Settings
|
* Create new Section Settings
|
||||||
*/
|
*/
|
||||||
public function __construct() {
|
public function __construct()
|
||||||
$this->_orientation = null;
|
{
|
||||||
$this->_marginTop = 1418;
|
$this->_orientation = null;
|
||||||
$this->_marginLeft = 1418;
|
$this->_marginTop = 1418;
|
||||||
$this->_marginRight = 1418;
|
$this->_marginLeft = 1418;
|
||||||
$this->_marginBottom = 1134;
|
$this->_marginRight = 1418;
|
||||||
$this->_pageSizeW = $this->_defaultPageSizeW;
|
$this->_marginBottom = 1134;
|
||||||
$this->_pageSizeH = $this->_defaultPageSizeH;
|
$this->_pageSizeW = $this->_defaultPageSizeW;
|
||||||
$this->_borderTopSize = null;
|
$this->_pageSizeH = $this->_defaultPageSizeH;
|
||||||
$this->_borderTopColor = null;
|
$this->_borderTopSize = null;
|
||||||
$this->_borderLeftSize = null;
|
$this->_borderTopColor = null;
|
||||||
$this->_borderLeftColor = null;
|
$this->_borderLeftSize = null;
|
||||||
$this->_borderRightSize = null;
|
$this->_borderLeftColor = null;
|
||||||
$this->_borderRightColor = null;
|
$this->_borderRightSize = null;
|
||||||
$this->_borderBottomSize = null;
|
$this->_borderRightColor = null;
|
||||||
$this->_borderBottomColor = null;
|
$this->_borderBottomSize = null;
|
||||||
}
|
$this->_borderBottomColor = null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Setting Value
|
* Set Setting Value
|
||||||
*
|
*
|
||||||
* @param string $key
|
* @param string $key
|
||||||
* @param string $value
|
* @param string $value
|
||||||
*/
|
*/
|
||||||
public function setSettingValue($key, $value) {
|
public function setSettingValue($key, $value)
|
||||||
if($key == '_orientation' && $value == 'landscape') {
|
{
|
||||||
$this->setLandscape();
|
if ($key == '_orientation' && $value == 'landscape') {
|
||||||
} elseif($key == '_orientation' && is_null($value)) {
|
$this->setLandscape();
|
||||||
$this->setPortrait();
|
} elseif ($key == '_orientation' && is_null($value)) {
|
||||||
} elseif($key == '_borderSize') {
|
$this->setPortrait();
|
||||||
$this->setBorderSize($value);
|
} elseif ($key == '_borderSize') {
|
||||||
} elseif($key == '_borderColor') {
|
$this->setBorderSize($value);
|
||||||
$this->setBorderColor($value);
|
} elseif ($key == '_borderColor') {
|
||||||
} else {
|
$this->setBorderColor($value);
|
||||||
$this->$key = $value;
|
} else {
|
||||||
}
|
$this->$key = $value;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Margin Top
|
* Get Margin Top
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getMarginTop() {
|
public function getMarginTop()
|
||||||
return $this->_marginTop;
|
{
|
||||||
}
|
return $this->_marginTop;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Margin Top
|
* Set Margin Top
|
||||||
*
|
*
|
||||||
* @param int $pValue
|
* @param int $pValue
|
||||||
*/
|
*/
|
||||||
public function setMarginTop($pValue = '') {
|
public function setMarginTop($pValue = '')
|
||||||
$this->_marginTop = $pValue;
|
{
|
||||||
return $this;
|
$this->_marginTop = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Margin Left
|
* Get Margin Left
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getMarginLeft() {
|
public function getMarginLeft()
|
||||||
return $this->_marginLeft;
|
{
|
||||||
}
|
return $this->_marginLeft;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Margin Left
|
* Set Margin Left
|
||||||
*
|
*
|
||||||
* @param int $pValue
|
* @param int $pValue
|
||||||
*/
|
*/
|
||||||
public function setMarginLeft($pValue = '') {
|
public function setMarginLeft($pValue = '')
|
||||||
$this->_marginLeft = $pValue;
|
{
|
||||||
return $this;
|
$this->_marginLeft = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Margin Right
|
* Get Margin Right
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getMarginRight() {
|
public function getMarginRight()
|
||||||
return $this->_marginRight;
|
{
|
||||||
}
|
return $this->_marginRight;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Margin Right
|
* Set Margin Right
|
||||||
*
|
*
|
||||||
* @param int $pValue
|
* @param int $pValue
|
||||||
*/
|
*/
|
||||||
public function setMarginRight($pValue = '') {
|
public function setMarginRight($pValue = '')
|
||||||
$this->_marginRight = $pValue;
|
{
|
||||||
return $this;
|
$this->_marginRight = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Margin Bottom
|
* Get Margin Bottom
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getMarginBottom() {
|
public function getMarginBottom()
|
||||||
return $this->_marginBottom;
|
{
|
||||||
}
|
return $this->_marginBottom;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Margin Bottom
|
* Set Margin Bottom
|
||||||
*
|
*
|
||||||
* @param int $pValue
|
* @param int $pValue
|
||||||
*/
|
*/
|
||||||
public function setMarginBottom($pValue = '') {
|
public function setMarginBottom($pValue = '')
|
||||||
$this->_marginBottom = $pValue;
|
{
|
||||||
return $this;
|
$this->_marginBottom = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Landscape Orientation
|
* Set Landscape Orientation
|
||||||
*/
|
*/
|
||||||
public function setLandscape() {
|
public function setLandscape()
|
||||||
$this->_orientation = 'landscape';
|
{
|
||||||
$this->_pageSizeW = $this->_defaultPageSizeH;
|
$this->_orientation = 'landscape';
|
||||||
$this->_pageSizeH = $this->_defaultPageSizeW;
|
$this->_pageSizeW = $this->_defaultPageSizeH;
|
||||||
}
|
$this->_pageSizeH = $this->_defaultPageSizeW;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Portrait Orientation
|
* Set Portrait Orientation
|
||||||
*/
|
*/
|
||||||
public function setPortrait() {
|
public function setPortrait()
|
||||||
$this->_orientation = null;
|
{
|
||||||
$this->_pageSizeW = $this->_defaultPageSizeW;
|
$this->_orientation = null;
|
||||||
$this->_pageSizeH = $this->_defaultPageSizeH;
|
$this->_pageSizeW = $this->_defaultPageSizeW;
|
||||||
}
|
$this->_pageSizeH = $this->_defaultPageSizeH;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Page Size Width
|
* Get Page Size Width
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getPageSizeW() {
|
public function getPageSizeW()
|
||||||
return $this->_pageSizeW;
|
{
|
||||||
}
|
return $this->_pageSizeW;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Page Size Height
|
* Get Page Size Height
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getPageSizeH() {
|
public function getPageSizeH()
|
||||||
return $this->_pageSizeH;
|
{
|
||||||
}
|
return $this->_pageSizeH;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Page Orientation
|
* Get Page Orientation
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getOrientation() {
|
public function getOrientation()
|
||||||
return $this->_orientation;
|
{
|
||||||
}
|
return $this->_orientation;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Border Size
|
* Set Border Size
|
||||||
*
|
*
|
||||||
* @param int $pValue
|
* @param int $pValue
|
||||||
*/
|
*/
|
||||||
public function setBorderSize($pValue = null) {
|
public function setBorderSize($pValue = null)
|
||||||
$this->_borderTopSize = $pValue;
|
{
|
||||||
$this->_borderLeftSize = $pValue;
|
$this->_borderTopSize = $pValue;
|
||||||
$this->_borderRightSize = $pValue;
|
$this->_borderLeftSize = $pValue;
|
||||||
$this->_borderBottomSize = $pValue;
|
$this->_borderRightSize = $pValue;
|
||||||
}
|
$this->_borderBottomSize = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Border Size
|
* Get Border Size
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function getBorderSize() {
|
public function getBorderSize()
|
||||||
$t = $this->getBorderTopSize();
|
{
|
||||||
$l = $this->getBorderLeftSize();
|
$t = $this->getBorderTopSize();
|
||||||
$r = $this->getBorderRightSize();
|
$l = $this->getBorderLeftSize();
|
||||||
$b = $this->getBorderBottomSize();
|
$r = $this->getBorderRightSize();
|
||||||
|
$b = $this->getBorderBottomSize();
|
||||||
|
|
||||||
return array($t, $l, $r, $b);
|
return array($t, $l, $r, $b);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Border Color
|
* Set Border Color
|
||||||
*
|
*
|
||||||
* @param string $pValue
|
* @param string $pValue
|
||||||
*/
|
*/
|
||||||
public function setBorderColor($pValue = null) {
|
public function setBorderColor($pValue = null)
|
||||||
$this->_borderTopColor = $pValue;
|
{
|
||||||
$this->_borderLeftColor = $pValue;
|
$this->_borderTopColor = $pValue;
|
||||||
$this->_borderRightColor = $pValue;
|
$this->_borderLeftColor = $pValue;
|
||||||
$this->_borderBottomColor = $pValue;
|
$this->_borderRightColor = $pValue;
|
||||||
}
|
$this->_borderBottomColor = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Border Color
|
* Get Border Color
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function getBorderColor() {
|
public function getBorderColor()
|
||||||
$t = $this->getBorderTopColor();
|
{
|
||||||
$l = $this->getBorderLeftColor();
|
$t = $this->getBorderTopColor();
|
||||||
$r = $this->getBorderRightColor();
|
$l = $this->getBorderLeftColor();
|
||||||
$b = $this->getBorderBottomColor();
|
$r = $this->getBorderRightColor();
|
||||||
|
$b = $this->getBorderBottomColor();
|
||||||
|
|
||||||
return array($t, $l, $r, $b);
|
return array($t, $l, $r, $b);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Border Top Size
|
* Set Border Top Size
|
||||||
*
|
*
|
||||||
* @param int $pValue
|
* @param int $pValue
|
||||||
*/
|
*/
|
||||||
public function setBorderTopSize($pValue = null) {
|
public function setBorderTopSize($pValue = null)
|
||||||
$this->_borderTopSize = $pValue;
|
{
|
||||||
}
|
$this->_borderTopSize = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Border Top Size
|
* Get Border Top Size
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getBorderTopSize() {
|
public function getBorderTopSize()
|
||||||
return $this->_borderTopSize;
|
{
|
||||||
}
|
return $this->_borderTopSize;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Border Top Color
|
* Set Border Top Color
|
||||||
*
|
*
|
||||||
* @param string $pValue
|
* @param string $pValue
|
||||||
*/
|
*/
|
||||||
public function setBorderTopColor($pValue = null) {
|
public function setBorderTopColor($pValue = null)
|
||||||
$this->_borderTopColor = $pValue;
|
{
|
||||||
}
|
$this->_borderTopColor = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Border Top Color
|
* Get Border Top Color
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getBorderTopColor() {
|
public function getBorderTopColor()
|
||||||
return $this->_borderTopColor;
|
{
|
||||||
}
|
return $this->_borderTopColor;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Border Left Size
|
* Set Border Left Size
|
||||||
*
|
*
|
||||||
* @param int $pValue
|
* @param int $pValue
|
||||||
*/
|
*/
|
||||||
public function setBorderLeftSize($pValue = null) {
|
public function setBorderLeftSize($pValue = null)
|
||||||
$this->_borderLeftSize = $pValue;
|
{
|
||||||
}
|
$this->_borderLeftSize = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Border Left Size
|
* Get Border Left Size
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getBorderLeftSize() {
|
public function getBorderLeftSize()
|
||||||
return $this->_borderLeftSize;
|
{
|
||||||
}
|
return $this->_borderLeftSize;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Border Left Color
|
* Set Border Left Color
|
||||||
*
|
*
|
||||||
* @param string $pValue
|
* @param string $pValue
|
||||||
*/
|
*/
|
||||||
public function setBorderLeftColor($pValue = null) {
|
public function setBorderLeftColor($pValue = null)
|
||||||
$this->_borderLeftColor = $pValue;
|
{
|
||||||
}
|
$this->_borderLeftColor = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Border Left Color
|
* Get Border Left Color
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getBorderLeftColor() {
|
public function getBorderLeftColor()
|
||||||
return $this->_borderLeftColor;
|
{
|
||||||
}
|
return $this->_borderLeftColor;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Border Right Size
|
* Set Border Right Size
|
||||||
*
|
*
|
||||||
* @param int $pValue
|
* @param int $pValue
|
||||||
*/
|
*/
|
||||||
public function setBorderRightSize($pValue = null) {
|
public function setBorderRightSize($pValue = null)
|
||||||
$this->_borderRightSize = $pValue;
|
{
|
||||||
}
|
$this->_borderRightSize = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Border Right Size
|
* Get Border Right Size
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getBorderRightSize() {
|
public function getBorderRightSize()
|
||||||
return $this->_borderRightSize;
|
{
|
||||||
}
|
return $this->_borderRightSize;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Border Right Color
|
* Set Border Right Color
|
||||||
*
|
*
|
||||||
* @param string $pValue
|
* @param string $pValue
|
||||||
*/
|
*/
|
||||||
public function setBorderRightColor($pValue = null) {
|
public function setBorderRightColor($pValue = null)
|
||||||
$this->_borderRightColor = $pValue;
|
{
|
||||||
}
|
$this->_borderRightColor = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Border Right Color
|
* Get Border Right Color
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getBorderRightColor() {
|
public function getBorderRightColor()
|
||||||
return $this->_borderRightColor;
|
{
|
||||||
}
|
return $this->_borderRightColor;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Border Bottom Size
|
* Set Border Bottom Size
|
||||||
*
|
*
|
||||||
* @param int $pValue
|
* @param int $pValue
|
||||||
*/
|
*/
|
||||||
public function setBorderBottomSize($pValue = null) {
|
public function setBorderBottomSize($pValue = null)
|
||||||
$this->_borderBottomSize = $pValue;
|
{
|
||||||
}
|
$this->_borderBottomSize = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Border Bottom Size
|
* Get Border Bottom Size
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getBorderBottomSize() {
|
public function getBorderBottomSize()
|
||||||
return $this->_borderBottomSize;
|
{
|
||||||
}
|
return $this->_borderBottomSize;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Border Bottom Color
|
* Set Border Bottom Color
|
||||||
*
|
*
|
||||||
* @param string $pValue
|
* @param string $pValue
|
||||||
*/
|
*/
|
||||||
public function setBorderBottomColor($pValue = null) {
|
public function setBorderBottomColor($pValue = null)
|
||||||
$this->_borderBottomColor = $pValue;
|
{
|
||||||
}
|
$this->_borderBottomColor = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Border Bottom Color
|
* Get Border Bottom Color
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getBorderBottomColor() {
|
public function getBorderBottomColor()
|
||||||
return $this->_borderBottomColor;
|
{
|
||||||
}
|
return $this->_borderBottomColor;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
|
||||||
|
|
@ -33,120 +33,126 @@
|
||||||
* @package PHPWord_Section
|
* @package PHPWord_Section
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Section_Table {
|
class PHPWord_Section_Table
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Table style
|
* Table style
|
||||||
*
|
*
|
||||||
* @var PHPWord_Style_Table
|
* @var PHPWord_Style_Table
|
||||||
*/
|
*/
|
||||||
private $_style;
|
private $_style;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Table rows
|
* Table rows
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private $_rows = array();
|
private $_rows = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Row heights
|
* Row heights
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private $_rowHeights = array();
|
private $_rowHeights = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Table holder
|
* Table holder
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_insideOf = null;
|
private $_insideOf = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Table holder count
|
* Table holder count
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private $_pCount;
|
private $_pCount;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new table
|
* Create a new table
|
||||||
*
|
*
|
||||||
* @param string $insideOf
|
* @param string $insideOf
|
||||||
* @param int $pCount
|
* @param int $pCount
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
*/
|
*/
|
||||||
public function __construct($insideOf, $pCount, $style = null) {
|
public function __construct($insideOf, $pCount, $style = null)
|
||||||
$this->_insideOf = $insideOf;
|
{
|
||||||
$this->_pCount = $pCount;
|
$this->_insideOf = $insideOf;
|
||||||
|
$this->_pCount = $pCount;
|
||||||
|
|
||||||
if(!is_null($style)) {
|
if (!is_null($style)) {
|
||||||
if(is_array($style)) {
|
if (is_array($style)) {
|
||||||
$this->_style = new PHPWord_Style_Table();
|
$this->_style = new PHPWord_Style_Table();
|
||||||
|
|
||||||
foreach($style as $key => $value) {
|
foreach ($style as $key => $value) {
|
||||||
if(substr($key, 0, 1) != '_') {
|
if (substr($key, 0, 1) != '_') {
|
||||||
$key = '_'.$key;
|
$key = '_' . $key;
|
||||||
}
|
}
|
||||||
$this->_style->setStyleValue($key, $value);
|
$this->_style->setStyleValue($key, $value);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$this->_style = $style;
|
$this->_style = $style;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a row
|
* Add a row
|
||||||
*
|
*
|
||||||
* @param int $height
|
* @param int $height
|
||||||
*/
|
*/
|
||||||
public function addRow($height = null) {
|
public function addRow($height = null)
|
||||||
$this->_rows[] = array();
|
{
|
||||||
$this->_rowHeights[] = $height;
|
$this->_rows[] = array();
|
||||||
}
|
$this->_rowHeights[] = $height;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a cell
|
* Add a cell
|
||||||
*
|
*
|
||||||
* @param int $width
|
* @param int $width
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
* @return PHPWord_Section_Table_Cell
|
* @return PHPWord_Section_Table_Cell
|
||||||
*/
|
*/
|
||||||
public function addCell($width, $style = null) {
|
public function addCell($width, $style = null)
|
||||||
$cell = new PHPWord_Section_Table_Cell($this->_insideOf, $this->_pCount, $width, $style);
|
{
|
||||||
$i = count($this->_rows) - 1;
|
$cell = new PHPWord_Section_Table_Cell($this->_insideOf, $this->_pCount, $width, $style);
|
||||||
$this->_rows[$i][] = $cell;
|
$i = count($this->_rows) - 1;
|
||||||
return $cell;
|
$this->_rows[$i][] = $cell;
|
||||||
}
|
return $cell;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all rows
|
* Get all rows
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function getRows() {
|
public function getRows()
|
||||||
return $this->_rows;
|
{
|
||||||
}
|
return $this->_rows;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all row heights
|
* Get all row heights
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function getRowHeights() {
|
public function getRowHeights()
|
||||||
return $this->_rowHeights;
|
{
|
||||||
}
|
return $this->_rowHeights;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get table style
|
* Get table style
|
||||||
*
|
*
|
||||||
* @return PHPWord_Style_Table
|
* @return PHPWord_Style_Table
|
||||||
*/
|
*/
|
||||||
public function getStyle() {
|
public function getStyle()
|
||||||
return $this->_style;
|
{
|
||||||
}
|
return $this->_style;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -33,287 +33,300 @@
|
||||||
* @package PHPWord_Section_Table
|
* @package PHPWord_Section_Table
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Section_Table_Cell {
|
class PHPWord_Section_Table_Cell
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cell Width
|
* Cell Width
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_width = null;
|
private $_width = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cell Style
|
* Cell Style
|
||||||
*
|
*
|
||||||
* @var PHPWord_Style_Cell
|
* @var PHPWord_Style_Cell
|
||||||
*/
|
*/
|
||||||
private $_style;
|
private $_style;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cell Element Collection
|
* Cell Element Collection
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private $_elementCollection = array();
|
private $_elementCollection = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Table holder
|
* Table holder
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_insideOf;
|
private $_insideOf;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Section/Header/Footer count
|
* Section/Header/Footer count
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_pCount;
|
private $_pCount;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new Table Cell
|
* Create a new Table Cell
|
||||||
*
|
*
|
||||||
* @param string $insideOf
|
* @param string $insideOf
|
||||||
* @param int $pCount
|
* @param int $pCount
|
||||||
* @param int $width
|
* @param int $width
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
*/
|
*/
|
||||||
public function __construct($insideOf, $pCount, $width = null, $style = null) {
|
public function __construct($insideOf, $pCount, $width = null, $style = null)
|
||||||
$this->_insideOf = $insideOf;
|
{
|
||||||
$this->_pCount = $pCount;
|
$this->_insideOf = $insideOf;
|
||||||
$this->_width = $width;
|
$this->_pCount = $pCount;
|
||||||
|
$this->_width = $width;
|
||||||
|
|
||||||
if(!is_null($style)) {
|
if (!is_null($style)) {
|
||||||
if(is_array($style)) {
|
if (is_array($style)) {
|
||||||
$this->_style = new PHPWord_Style_Cell();
|
$this->_style = new PHPWord_Style_Cell();
|
||||||
|
|
||||||
foreach($style as $key => $value) {
|
foreach ($style as $key => $value) {
|
||||||
if(substr($key, 0, 1) != '_') {
|
if (substr($key, 0, 1) != '_') {
|
||||||
$key = '_'.$key;
|
$key = '_' . $key;
|
||||||
}
|
}
|
||||||
$this->_style->setStyleValue($key, $value);
|
$this->_style->setStyleValue($key, $value);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$this->_style = $style;
|
$this->_style = $style;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Text Element
|
* Add a Text Element
|
||||||
*
|
*
|
||||||
* @param string $text
|
* @param string $text
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
* @return PHPWord_Section_Text
|
* @return PHPWord_Section_Text
|
||||||
*/
|
*/
|
||||||
public function addText($text, $styleFont = null, $styleParagraph = null) {
|
public function addText($text, $styleFont = null, $styleParagraph = null)
|
||||||
$text = utf8_encode($text);
|
{
|
||||||
$text = new PHPWord_Section_Text($text, $styleFont, $styleParagraph);
|
$text = utf8_encode($text);
|
||||||
$this->_elementCollection[] = $text;
|
$text = new PHPWord_Section_Text($text, $styleFont, $styleParagraph);
|
||||||
return $text;
|
$this->_elementCollection[] = $text;
|
||||||
}
|
return $text;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Link Element
|
* Add a Link Element
|
||||||
*
|
*
|
||||||
* @param string $linkSrc
|
* @param string $linkSrc
|
||||||
* @param string $linkName
|
* @param string $linkName
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
* @return PHPWord_Section_Link
|
* @return PHPWord_Section_Link
|
||||||
*/
|
*/
|
||||||
public function addLink($linkSrc, $linkName = null, $style = null) {
|
public function addLink($linkSrc, $linkName = null, $style = null)
|
||||||
if($this->_insideOf == 'section') {
|
{
|
||||||
$linkSrc = utf8_encode($linkSrc);
|
if ($this->_insideOf == 'section') {
|
||||||
if(!is_null($linkName)) {
|
$linkSrc = utf8_encode($linkSrc);
|
||||||
$linkName = utf8_encode($linkName);
|
if (!is_null($linkName)) {
|
||||||
}
|
$linkName = utf8_encode($linkName);
|
||||||
|
}
|
||||||
|
|
||||||
$link = new PHPWord_Section_Link($linkSrc, $linkName, $style);
|
$link = new PHPWord_Section_Link($linkSrc, $linkName, $style);
|
||||||
$rID = PHPWord_Media::addSectionLinkElement($linkSrc);
|
$rID = PHPWord_Media::addSectionLinkElement($linkSrc);
|
||||||
$link->setRelationId($rID);
|
$link->setRelationId($rID);
|
||||||
|
|
||||||
$this->_elementCollection[] = $link;
|
$this->_elementCollection[] = $link;
|
||||||
return $link;
|
return $link;
|
||||||
} else {
|
} else {
|
||||||
trigger_error('Unsupported Link header / footer reference');
|
trigger_error('Unsupported Link header / footer reference');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a TextBreak Element
|
* Add a TextBreak Element
|
||||||
*
|
*
|
||||||
* @param int $count
|
* @param int $count
|
||||||
*/
|
*/
|
||||||
public function addTextBreak() {
|
public function addTextBreak()
|
||||||
$this->_elementCollection[] = new PHPWord_Section_TextBreak();
|
{
|
||||||
}
|
$this->_elementCollection[] = new PHPWord_Section_TextBreak();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a ListItem Element
|
* Add a ListItem Element
|
||||||
*
|
*
|
||||||
* @param string $text
|
* @param string $text
|
||||||
* @param int $depth
|
* @param int $depth
|
||||||
* @param mixed $styleText
|
* @param mixed $styleText
|
||||||
* @param mixed $styleList
|
* @param mixed $styleList
|
||||||
* @return PHPWord_Section_ListItem
|
* @return PHPWord_Section_ListItem
|
||||||
*/
|
*/
|
||||||
public function addListItem($text, $depth = 0, $styleText = null, $styleList = null) {
|
public function addListItem($text, $depth = 0, $styleText = null, $styleList = null)
|
||||||
$text = utf8_encode($text);
|
{
|
||||||
$listItem = new PHPWord_Section_ListItem($text, $depth, $styleText, $styleList);
|
$text = utf8_encode($text);
|
||||||
$this->_elementCollection[] = $listItem;
|
$listItem = new PHPWord_Section_ListItem($text, $depth, $styleText, $styleList);
|
||||||
return $listItem;
|
$this->_elementCollection[] = $listItem;
|
||||||
}
|
return $listItem;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Image Element
|
* Add a Image Element
|
||||||
*
|
*
|
||||||
* @param string $src
|
* @param string $src
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
* @return PHPWord_Section_Image
|
* @return PHPWord_Section_Image
|
||||||
*/
|
*/
|
||||||
public function addImage($src, $style = null) {
|
public function addImage($src, $style = null)
|
||||||
$image = new PHPWord_Section_Image($src, $style);
|
{
|
||||||
|
$image = new PHPWord_Section_Image($src, $style);
|
||||||
|
|
||||||
if(!is_null($image->getSource())) {
|
if (!is_null($image->getSource())) {
|
||||||
if($this->_insideOf == 'section') {
|
if ($this->_insideOf == 'section') {
|
||||||
$rID = PHPWord_Media::addSectionMediaElement($src, 'image');
|
$rID = PHPWord_Media::addSectionMediaElement($src, 'image');
|
||||||
} elseif($this->_insideOf == 'header') {
|
} elseif ($this->_insideOf == 'header') {
|
||||||
$rID = PHPWord_Media::addHeaderMediaElement($this->_pCount, $src);
|
$rID = PHPWord_Media::addHeaderMediaElement($this->_pCount, $src);
|
||||||
} elseif($this->_insideOf == 'footer') {
|
} elseif ($this->_insideOf == 'footer') {
|
||||||
$rID = PHPWord_Media::addFooterMediaElement($this->_pCount, $src);
|
$rID = PHPWord_Media::addFooterMediaElement($this->_pCount, $src);
|
||||||
}
|
}
|
||||||
$image->setRelationId($rID);
|
$image->setRelationId($rID);
|
||||||
|
|
||||||
$this->_elementCollection[] = $image;
|
$this->_elementCollection[] = $image;
|
||||||
return $image;
|
return $image;
|
||||||
} else {
|
} else {
|
||||||
trigger_error('Source does not exist or unsupported image type.');
|
trigger_error('Source does not exist or unsupported image type.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a by PHP created Image Element
|
* Add a by PHP created Image Element
|
||||||
*
|
*
|
||||||
* @param string $link
|
* @param string $link
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
* @return PHPWord_Section_MemoryImage
|
* @return PHPWord_Section_MemoryImage
|
||||||
*/
|
*/
|
||||||
public function addMemoryImage($link, $style = null) {
|
public function addMemoryImage($link, $style = null)
|
||||||
$memoryImage = new PHPWord_Section_MemoryImage($link, $style);
|
{
|
||||||
if(!is_null($memoryImage->getSource())) {
|
$memoryImage = new PHPWord_Section_MemoryImage($link, $style);
|
||||||
if($this->_insideOf == 'section') {
|
if (!is_null($memoryImage->getSource())) {
|
||||||
$rID = PHPWord_Media::addSectionMediaElement($link, 'image', $memoryImage);
|
if ($this->_insideOf == 'section') {
|
||||||
} elseif($this->_insideOf == 'header') {
|
$rID = PHPWord_Media::addSectionMediaElement($link, 'image', $memoryImage);
|
||||||
$rID = PHPWord_Media::addHeaderMediaElement($this->_pCount, $link, $memoryImage);
|
} elseif ($this->_insideOf == 'header') {
|
||||||
} elseif($this->_insideOf == 'footer') {
|
$rID = PHPWord_Media::addHeaderMediaElement($this->_pCount, $link, $memoryImage);
|
||||||
$rID = PHPWord_Media::addFooterMediaElement($this->_pCount, $link, $memoryImage);
|
} elseif ($this->_insideOf == 'footer') {
|
||||||
}
|
$rID = PHPWord_Media::addFooterMediaElement($this->_pCount, $link, $memoryImage);
|
||||||
$memoryImage->setRelationId($rID);
|
}
|
||||||
|
$memoryImage->setRelationId($rID);
|
||||||
|
|
||||||
$this->_elementCollection[] = $memoryImage;
|
$this->_elementCollection[] = $memoryImage;
|
||||||
return $memoryImage;
|
return $memoryImage;
|
||||||
} else {
|
} else {
|
||||||
trigger_error('Unsupported image type.');
|
trigger_error('Unsupported image type.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a OLE-Object Element
|
* Add a OLE-Object Element
|
||||||
*
|
*
|
||||||
* @param string $src
|
* @param string $src
|
||||||
* @param mixed $style
|
* @param mixed $style
|
||||||
* @return PHPWord_Section_Object
|
* @return PHPWord_Section_Object
|
||||||
*/
|
*/
|
||||||
public function addObject($src, $style = null) {
|
public function addObject($src, $style = null)
|
||||||
$object = new PHPWord_Section_Object($src, $style);
|
{
|
||||||
|
$object = new PHPWord_Section_Object($src, $style);
|
||||||
|
|
||||||
if(!is_null($object->getSource())) {
|
if (!is_null($object->getSource())) {
|
||||||
$inf = pathinfo($src);
|
$inf = pathinfo($src);
|
||||||
$ext = $inf['extension'];
|
$ext = $inf['extension'];
|
||||||
if(strlen($ext) == 4 && strtolower(substr($ext, -1)) == 'x') {
|
if (strlen($ext) == 4 && strtolower(substr($ext, -1)) == 'x') {
|
||||||
$ext = substr($ext, 0, -1);
|
$ext = substr($ext, 0, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
$iconSrc = PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/';
|
$iconSrc = PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/';
|
||||||
if(!file_exists($iconSrc.'_'.$ext.'.png')) {
|
if (!file_exists($iconSrc . '_' . $ext . '.png')) {
|
||||||
$iconSrc = $iconSrc.'_default.png';
|
$iconSrc = $iconSrc . '_default.png';
|
||||||
} else {
|
} else {
|
||||||
$iconSrc .= '_'.$ext.'.png';
|
$iconSrc .= '_' . $ext . '.png';
|
||||||
}
|
}
|
||||||
|
|
||||||
$rIDimg = PHPWord_Media::addSectionMediaElement($iconSrc, 'image');
|
$rIDimg = PHPWord_Media::addSectionMediaElement($iconSrc, 'image');
|
||||||
$data = PHPWord_Media::addSectionMediaElement($src, 'oleObject');
|
$data = PHPWord_Media::addSectionMediaElement($src, 'oleObject');
|
||||||
$rID = $data[0];
|
$rID = $data[0];
|
||||||
$objectId = $data[1];
|
$objectId = $data[1];
|
||||||
|
|
||||||
$object->setRelationId($rID);
|
$object->setRelationId($rID);
|
||||||
$object->setObjectId($objectId);
|
$object->setObjectId($objectId);
|
||||||
$object->setImageRelationId($rIDimg);
|
$object->setImageRelationId($rIDimg);
|
||||||
|
|
||||||
$this->_elementCollection[] = $object;
|
$this->_elementCollection[] = $object;
|
||||||
return $object;
|
return $object;
|
||||||
} else {
|
} else {
|
||||||
trigger_error('Source does not exist or unsupported object type.');
|
trigger_error('Source does not exist or unsupported object type.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a PreserveText Element
|
* Add a PreserveText Element
|
||||||
*
|
*
|
||||||
* @param string $text
|
* @param string $text
|
||||||
* @param mixed $styleFont
|
* @param mixed $styleFont
|
||||||
* @param mixed $styleParagraph
|
* @param mixed $styleParagraph
|
||||||
* @return PHPWord_Section_Footer_PreserveText
|
* @return PHPWord_Section_Footer_PreserveText
|
||||||
*/
|
*/
|
||||||
public function addPreserveText($text, $styleFont = null, $styleParagraph = null) {
|
public function addPreserveText($text, $styleFont = null, $styleParagraph = null)
|
||||||
if($this->_insideOf == 'footer' || $this->_insideOf == 'header') {
|
{
|
||||||
$text = utf8_encode($text);
|
if ($this->_insideOf == 'footer' || $this->_insideOf == 'header') {
|
||||||
$ptext = new PHPWord_Section_Footer_PreserveText($text, $styleFont, $styleParagraph);
|
$text = utf8_encode($text);
|
||||||
$this->_elementCollection[] = $ptext;
|
$ptext = new PHPWord_Section_Footer_PreserveText($text, $styleFont, $styleParagraph);
|
||||||
return $ptext;
|
$this->_elementCollection[] = $ptext;
|
||||||
} else {
|
return $ptext;
|
||||||
trigger_error('addPreserveText only supported in footer/header.');
|
} else {
|
||||||
}
|
trigger_error('addPreserveText only supported in footer/header.');
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new TextRun
|
* Create a new TextRun
|
||||||
*
|
*
|
||||||
* @return PHPWord_Section_TextRun
|
* @return PHPWord_Section_TextRun
|
||||||
*/
|
*/
|
||||||
public function createTextRun($styleParagraph = null) {
|
public function createTextRun($styleParagraph = null)
|
||||||
$textRun = new PHPWord_Section_TextRun($styleParagraph);
|
{
|
||||||
$this->_elementCollection[] = $textRun;
|
$textRun = new PHPWord_Section_TextRun($styleParagraph);
|
||||||
return $textRun;
|
$this->_elementCollection[] = $textRun;
|
||||||
}
|
return $textRun;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all Elements
|
* Get all Elements
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function getElements() {
|
public function getElements()
|
||||||
return $this->_elementCollection;
|
{
|
||||||
}
|
return $this->_elementCollection;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Cell Style
|
* Get Cell Style
|
||||||
*
|
*
|
||||||
* @return PHPWord_Style_Cell
|
* @return PHPWord_Style_Cell
|
||||||
*/
|
*/
|
||||||
public function getStyle() {
|
public function getStyle()
|
||||||
return $this->_style;
|
{
|
||||||
}
|
return $this->_style;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Cell width
|
* Get Cell width
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getWidth() {
|
public function getWidth()
|
||||||
return $this->_width;
|
{
|
||||||
}
|
return $this->_width;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
|
||||||
|
|
@ -33,113 +33,119 @@
|
||||||
* @package PHPWord_Section
|
* @package PHPWord_Section
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Section_Text {
|
class PHPWord_Section_Text
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Text content
|
* Text content
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_text;
|
private $_text;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Text style
|
* Text style
|
||||||
*
|
*
|
||||||
* @var PHPWord_Style_Font
|
* @var PHPWord_Style_Font
|
||||||
*/
|
*/
|
||||||
private $_styleFont;
|
private $_styleFont;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Paragraph style
|
* Paragraph style
|
||||||
*
|
*
|
||||||
* @var PHPWord_Style_Font
|
* @var PHPWord_Style_Font
|
||||||
*/
|
*/
|
||||||
private $_styleParagraph;
|
private $_styleParagraph;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new Text Element
|
* Create a new Text Element
|
||||||
*
|
*
|
||||||
* @var string $text
|
* @var string $text
|
||||||
* @var mixed $style
|
* @var mixed $style
|
||||||
*/
|
*/
|
||||||
public function __construct($text = null, $styleFont = null, $styleParagraph = null) {
|
public function __construct($text = null, $styleFont = null, $styleParagraph = null)
|
||||||
// Set font style
|
{
|
||||||
$this->setFontStyle($styleFont);
|
// Set font style
|
||||||
|
$this->setFontStyle($styleFont);
|
||||||
|
|
||||||
// Set paragraph style
|
// Set paragraph style
|
||||||
$this->setParagraphStyle($styleParagraph);
|
$this->setParagraphStyle($styleParagraph);
|
||||||
|
|
||||||
$this->_text = $text;
|
$this->_text = $text;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Text style
|
* Get Text style
|
||||||
*
|
*
|
||||||
* @return PHPWord_Style_Font
|
* @return PHPWord_Style_Font
|
||||||
*/
|
*/
|
||||||
public function getFontStyle() {
|
public function getFontStyle()
|
||||||
return $this->_styleFont;
|
{
|
||||||
}
|
return $this->_styleFont;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Text style
|
* Set Text style
|
||||||
*
|
*
|
||||||
* @return PHPWord_Style_Font
|
* @return PHPWord_Style_Font
|
||||||
*/
|
*/
|
||||||
public function setFontStyle($styleFont) {
|
public function setFontStyle($styleFont)
|
||||||
if(is_array($styleFont)) {
|
{
|
||||||
$this->_styleFont = new PHPWord_Style_Font('text');
|
if (is_array($styleFont)) {
|
||||||
|
$this->_styleFont = new PHPWord_Style_Font('text');
|
||||||
|
|
||||||
foreach($styleFont as $key => $value) {
|
foreach ($styleFont as $key => $value) {
|
||||||
if(substr($key, 0, 1) != '_') {
|
if (substr($key, 0, 1) != '_') {
|
||||||
$key = '_'.$key;
|
$key = '_' . $key;
|
||||||
}
|
}
|
||||||
$this->_styleFont->setStyleValue($key, $value);
|
$this->_styleFont->setStyleValue($key, $value);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$this->_styleFont = $styleFont;
|
$this->_styleFont = $styleFont;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Paragraph style
|
* Get Paragraph style
|
||||||
*
|
*
|
||||||
* @return PHPWord_Style_Paragraph
|
* @return PHPWord_Style_Paragraph
|
||||||
*/
|
*/
|
||||||
public function getParagraphStyle() {
|
public function getParagraphStyle()
|
||||||
return $this->_styleParagraph;
|
{
|
||||||
}
|
return $this->_styleParagraph;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Paragraph style
|
* Set Paragraph style
|
||||||
*
|
*
|
||||||
* @return PHPWord_Style_Paragraph
|
* @return PHPWord_Style_Paragraph
|
||||||
*/
|
*/
|
||||||
public function setParagraphStyle($styleParagraph) {
|
public function setParagraphStyle($styleParagraph)
|
||||||
if(is_array($styleParagraph)) {
|
{
|
||||||
$this->_styleParagraph = new PHPWord_Style_Paragraph();
|
if (is_array($styleParagraph)) {
|
||||||
|
$this->_styleParagraph = new PHPWord_Style_Paragraph();
|
||||||
|
|
||||||
foreach($styleParagraph as $key => $value) {
|
foreach ($styleParagraph as $key => $value) {
|
||||||
if(substr($key, 0, 1) != '_') {
|
if (substr($key, 0, 1) != '_') {
|
||||||
$key = '_'.$key;
|
$key = '_' . $key;
|
||||||
}
|
}
|
||||||
$this->_styleParagraph->setStyleValue($key, $value);
|
$this->_styleParagraph->setStyleValue($key, $value);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$this->_styleParagraph = $styleParagraph;
|
$this->_styleParagraph = $styleParagraph;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Text content
|
* Get Text content
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getText() {
|
public function getText()
|
||||||
return $this->_text;
|
{
|
||||||
}
|
return $this->_text;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -33,13 +33,14 @@
|
||||||
* @package PHPWord_Section
|
* @package PHPWord_Section
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Section_TextBreak {
|
class PHPWord_Section_TextBreak
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new TextBreak Element
|
* Create a new TextBreak Element
|
||||||
*/
|
*/
|
||||||
public function __construct() {
|
public function __construct()
|
||||||
// nothing
|
{
|
||||||
}
|
// nothing
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -33,97 +33,102 @@
|
||||||
* @package PHPWord_Section
|
* @package PHPWord_Section
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Section_TextRun {
|
class PHPWord_Section_TextRun
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Paragraph style
|
* Paragraph style
|
||||||
*
|
*
|
||||||
* @var PHPWord_Style_Font
|
* @var PHPWord_Style_Font
|
||||||
*/
|
*/
|
||||||
private $_styleParagraph;
|
private $_styleParagraph;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Text collection
|
* Text collection
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private $_elementCollection;
|
private $_elementCollection;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new TextRun Element
|
* Create a new TextRun Element
|
||||||
*/
|
*/
|
||||||
public function __construct($styleParagraph = null) {
|
public function __construct($styleParagraph = null)
|
||||||
$this->_elementCollection = array();
|
{
|
||||||
|
$this->_elementCollection = array();
|
||||||
|
|
||||||
// Set paragraph style
|
// Set paragraph style
|
||||||
if(is_array($styleParagraph)) {
|
if (is_array($styleParagraph)) {
|
||||||
$this->_styleParagraph = new PHPWord_Style_Paragraph();
|
$this->_styleParagraph = new PHPWord_Style_Paragraph();
|
||||||
|
|
||||||
foreach($styleParagraph as $key => $value) {
|
foreach ($styleParagraph as $key => $value) {
|
||||||
if(substr($key, 0, 1) != '_') {
|
if (substr($key, 0, 1) != '_') {
|
||||||
$key = '_'.$key;
|
$key = '_' . $key;
|
||||||
}
|
}
|
||||||
$this->_styleParagraph->setStyleValue($key, $value);
|
$this->_styleParagraph->setStyleValue($key, $value);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$this->_styleParagraph = $styleParagraph;
|
$this->_styleParagraph = $styleParagraph;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Text Element
|
* Add a Text Element
|
||||||
*
|
*
|
||||||
* @var string $text
|
* @var string $text
|
||||||
* @var mixed $styleFont
|
* @var mixed $styleFont
|
||||||
* @return PHPWord_Section_Text
|
* @return PHPWord_Section_Text
|
||||||
*/
|
*/
|
||||||
public function addText($text = null, $styleFont = null) {
|
public function addText($text = null, $styleFont = null)
|
||||||
$givenText = utf8_encode($text);
|
{
|
||||||
$text = new PHPWord_Section_Text($givenText, $styleFont);
|
$givenText = utf8_encode($text);
|
||||||
$this->_elementCollection[] = $text;
|
$text = new PHPWord_Section_Text($givenText, $styleFont);
|
||||||
return $text;
|
$this->_elementCollection[] = $text;
|
||||||
}
|
return $text;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Link Element
|
* Add a Link Element
|
||||||
*
|
*
|
||||||
* @param string $linkSrc
|
* @param string $linkSrc
|
||||||
* @param string $linkName
|
* @param string $linkName
|
||||||
* @param mixed $styleFont
|
* @param mixed $styleFont
|
||||||
* @return PHPWord_Section_Link
|
* @return PHPWord_Section_Link
|
||||||
*/
|
*/
|
||||||
public function addLink($linkSrc, $linkName = null, $styleFont = null) {
|
public function addLink($linkSrc, $linkName = null, $styleFont = null)
|
||||||
$linkSrc = utf8_encode($linkSrc);
|
{
|
||||||
if(!is_null($linkName)) {
|
$linkSrc = utf8_encode($linkSrc);
|
||||||
$linkName = utf8_encode($linkName);
|
if (!is_null($linkName)) {
|
||||||
}
|
$linkName = utf8_encode($linkName);
|
||||||
|
}
|
||||||
|
|
||||||
$link = new PHPWord_Section_Link($linkSrc, $linkName, $styleFont);
|
$link = new PHPWord_Section_Link($linkSrc, $linkName, $styleFont);
|
||||||
$rID = PHPWord_Media::addSectionLinkElement($linkSrc);
|
$rID = PHPWord_Media::addSectionLinkElement($linkSrc);
|
||||||
$link->setRelationId($rID);
|
$link->setRelationId($rID);
|
||||||
|
|
||||||
$this->_elementCollection[] = $link;
|
$this->_elementCollection[] = $link;
|
||||||
return $link;
|
return $link;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get TextRun content
|
* Get TextRun content
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getElements() {
|
public function getElements()
|
||||||
return $this->_elementCollection;
|
{
|
||||||
}
|
return $this->_elementCollection;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Paragraph style
|
* Get Paragraph style
|
||||||
*
|
*
|
||||||
* @return PHPWord_Style_Paragraph
|
* @return PHPWord_Style_Paragraph
|
||||||
*/
|
*/
|
||||||
public function getParagraphStyle() {
|
public function getParagraphStyle()
|
||||||
return $this->_styleParagraph;
|
{
|
||||||
}
|
return $this->_styleParagraph;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -33,113 +33,120 @@
|
||||||
* @package PHPWord_Section
|
* @package PHPWord_Section
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Section_Title {
|
class PHPWord_Section_Title
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Title Text content
|
* Title Text content
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_text;
|
private $_text;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Title depth
|
* Title depth
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_depth;
|
private $_depth;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Title anchor
|
* Title anchor
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_anchor;
|
private $_anchor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Title Bookmark ID
|
* Title Bookmark ID
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_bookmarkId;
|
private $_bookmarkId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Title style
|
* Title style
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_style;
|
private $_style;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new Title Element
|
* Create a new Title Element
|
||||||
*
|
*
|
||||||
* @var string $text
|
* @var string $text
|
||||||
* @var int $depth
|
* @var int $depth
|
||||||
*/
|
*/
|
||||||
public function __construct($text, $depth = 1, $style = null) {
|
public function __construct($text, $depth = 1, $style = null)
|
||||||
if(!is_null($style)) {
|
{
|
||||||
$this->_style = $style;
|
if (!is_null($style)) {
|
||||||
}
|
$this->_style = $style;
|
||||||
|
}
|
||||||
|
|
||||||
$this->_text = $text;
|
$this->_text = $text;
|
||||||
$this->_depth = $depth;
|
$this->_depth = $depth;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Anchor
|
* Set Anchor
|
||||||
*
|
*
|
||||||
* @var int $anchor
|
* @var int $anchor
|
||||||
*/
|
*/
|
||||||
public function setAnchor($anchor) {
|
public function setAnchor($anchor)
|
||||||
$this->_anchor = $anchor;
|
{
|
||||||
}
|
$this->_anchor = $anchor;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Anchor
|
* Get Anchor
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getAnchor() {
|
public function getAnchor()
|
||||||
return $this->_anchor;
|
{
|
||||||
}
|
return $this->_anchor;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Bookmark ID
|
* Set Bookmark ID
|
||||||
*
|
*
|
||||||
* @var int $bookmarkId
|
* @var int $bookmarkId
|
||||||
*/
|
*/
|
||||||
public function setBookmarkId($bookmarkId) {
|
public function setBookmarkId($bookmarkId)
|
||||||
$this->_bookmarkId = $bookmarkId;
|
{
|
||||||
}
|
$this->_bookmarkId = $bookmarkId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Anchor
|
* Get Anchor
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getBookmarkId() {
|
public function getBookmarkId()
|
||||||
return $this->_bookmarkId;
|
{
|
||||||
}
|
return $this->_bookmarkId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Title Text content
|
* Get Title Text content
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getText() {
|
public function getText()
|
||||||
return $this->_text;
|
{
|
||||||
}
|
return $this->_text;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Title style
|
* Get Title style
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getStyle() {
|
public function getStyle()
|
||||||
return $this->_style;
|
{
|
||||||
}
|
return $this->_style;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -28,127 +28,134 @@
|
||||||
|
|
||||||
class PHPWord_Shared_Drawing
|
class PHPWord_Shared_Drawing
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Convert pixels to EMU
|
* Convert pixels to EMU
|
||||||
*
|
*
|
||||||
* @param int $pValue Value in pixels
|
* @param int $pValue Value in pixels
|
||||||
* @return int Value in EMU
|
* @return int Value in EMU
|
||||||
*/
|
*/
|
||||||
public static function pixelsToEMU($pValue = 0) {
|
public static function pixelsToEMU($pValue = 0)
|
||||||
return round($pValue * 9525);
|
{
|
||||||
}
|
return round($pValue * 9525);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert EMU to pixels
|
* Convert EMU to pixels
|
||||||
*
|
*
|
||||||
* @param int $pValue Value in EMU
|
* @param int $pValue Value in EMU
|
||||||
* @return int Value in pixels
|
* @return int Value in pixels
|
||||||
*/
|
*/
|
||||||
public static function EMUToPixels($pValue = 0) {
|
public static function EMUToPixels($pValue = 0)
|
||||||
if ($pValue != 0) {
|
{
|
||||||
return round($pValue / 9525);
|
if ($pValue != 0) {
|
||||||
} else {
|
return round($pValue / 9525);
|
||||||
return 0;
|
} else {
|
||||||
}
|
return 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert pixels to points
|
* Convert pixels to points
|
||||||
*
|
*
|
||||||
* @param int $pValue Value in pixels
|
* @param int $pValue Value in pixels
|
||||||
* @return int Value in points
|
* @return int Value in points
|
||||||
*/
|
*/
|
||||||
public static function pixelsToPoints($pValue = 0) {
|
public static function pixelsToPoints($pValue = 0)
|
||||||
return $pValue * 0.67777777;
|
{
|
||||||
}
|
return $pValue * 0.67777777;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert points width to pixels
|
* Convert points width to pixels
|
||||||
*
|
*
|
||||||
* @param int $pValue Value in points
|
* @param int $pValue Value in points
|
||||||
* @return int Value in pixels
|
* @return int Value in pixels
|
||||||
*/
|
*/
|
||||||
public static function pointsToPixels($pValue = 0) {
|
public static function pointsToPixels($pValue = 0)
|
||||||
if ($pValue != 0) {
|
{
|
||||||
return $pValue * 1.333333333;
|
if ($pValue != 0) {
|
||||||
} else {
|
return $pValue * 1.333333333;
|
||||||
return 0;
|
} else {
|
||||||
}
|
return 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert degrees to angle
|
* Convert degrees to angle
|
||||||
*
|
*
|
||||||
* @param int $pValue Degrees
|
* @param int $pValue Degrees
|
||||||
* @return int Angle
|
* @return int Angle
|
||||||
*/
|
*/
|
||||||
public static function degreesToAngle($pValue = 0) {
|
public static function degreesToAngle($pValue = 0)
|
||||||
return (int)round($pValue * 60000);
|
{
|
||||||
}
|
return (int)round($pValue * 60000);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert angle to degrees
|
* Convert angle to degrees
|
||||||
*
|
*
|
||||||
* @param int $pValue Angle
|
* @param int $pValue Angle
|
||||||
* @return int Degrees
|
* @return int Degrees
|
||||||
*/
|
*/
|
||||||
public static function angleToDegrees($pValue = 0) {
|
public static function angleToDegrees($pValue = 0)
|
||||||
if ($pValue != 0) {
|
{
|
||||||
return round($pValue / 60000);
|
if ($pValue != 0) {
|
||||||
} else {
|
return round($pValue / 60000);
|
||||||
return 0;
|
} else {
|
||||||
}
|
return 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert pixels to centimeters
|
* Convert pixels to centimeters
|
||||||
*
|
*
|
||||||
* @param int $pValue Value in pixels
|
* @param int $pValue Value in pixels
|
||||||
* @return int Value in centimeters
|
* @return int Value in centimeters
|
||||||
*/
|
*/
|
||||||
public static function pixelsToCentimeters($pValue = 0) {
|
public static function pixelsToCentimeters($pValue = 0)
|
||||||
return $pValue * 0.028;
|
{
|
||||||
}
|
return $pValue * 0.028;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert centimeters width to pixels
|
* Convert centimeters width to pixels
|
||||||
*
|
*
|
||||||
* @param int $pValue Value in centimeters
|
* @param int $pValue Value in centimeters
|
||||||
* @return int Value in pixels
|
* @return int Value in pixels
|
||||||
*/
|
*/
|
||||||
public static function centimetersToPixels($pValue = 0) {
|
public static function centimetersToPixels($pValue = 0)
|
||||||
if ($pValue != 0) {
|
{
|
||||||
return $pValue * 0.028;
|
if ($pValue != 0) {
|
||||||
} else {
|
return $pValue * 0.028;
|
||||||
return 0;
|
} else {
|
||||||
}
|
return 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert HTML hexadecimal to RGB
|
* Convert HTML hexadecimal to RGB
|
||||||
*
|
*
|
||||||
* @param str $pValue HTML Color in hexadecimal
|
* @param str $pValue HTML Color in hexadecimal
|
||||||
* @return array Value in RGB
|
* @return array Value in RGB
|
||||||
*/
|
*/
|
||||||
public static function htmlToRGB($pValue) {
|
public static function htmlToRGB($pValue)
|
||||||
if ($pValue[0] == '#'){
|
{
|
||||||
$pValue = substr($pValue, 1);
|
if ($pValue[0] == '#') {
|
||||||
}
|
$pValue = substr($pValue, 1);
|
||||||
|
}
|
||||||
|
|
||||||
if (strlen($pValue) == 6){
|
if (strlen($pValue) == 6) {
|
||||||
list($color_R, $color_G, $color_B) = array($pValue[0].$pValue[1],$pValue[2].$pValue[3],$pValue[4].$pValue[5]);
|
list($color_R, $color_G, $color_B) = array($pValue[0] . $pValue[1], $pValue[2] . $pValue[3], $pValue[4] . $pValue[5]);
|
||||||
}
|
} elseif (strlen($pValue) == 3) {
|
||||||
elseif (strlen($pValue) == 3){
|
list($color_R, $color_G, $color_B) = array($pValue[0] . $pValue[0], $pValue[1] . $pValue[1], $pValue[2] . $pValue[2]);
|
||||||
list($color_R, $color_G, $color_B) = array($pValue[0].$pValue[0],$pValue[1].$pValue[1],$pValue[2].$pValue[2]);
|
} else {
|
||||||
}
|
return false;
|
||||||
else{
|
}
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$color_R = hexdec($color_R);
|
$color_R = hexdec($color_R);
|
||||||
$color_G = hexdec($color_G);
|
$color_G = hexdec($color_G);
|
||||||
$color_B = hexdec($color_B);
|
$color_B = hexdec($color_B);
|
||||||
|
|
||||||
return array($color_R, $color_G, $color_B);
|
return array($color_R, $color_G, $color_B);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,64 +28,66 @@
|
||||||
|
|
||||||
class PHPWord_Shared_File
|
class PHPWord_Shared_File
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Verify if a file exists
|
* Verify if a file exists
|
||||||
*
|
*
|
||||||
* @param string $pFilename Filename
|
* @param string $pFilename Filename
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public static function file_exists($pFilename) {
|
public static function file_exists($pFilename)
|
||||||
// Sick construction, but it seems that
|
{
|
||||||
// file_exists returns strange values when
|
// Sick construction, but it seems that
|
||||||
// doing the original file_exists on ZIP archives...
|
// file_exists returns strange values when
|
||||||
if ( strtolower(substr($pFilename, 0, 3)) == 'zip' ) {
|
// doing the original file_exists on ZIP archives...
|
||||||
// Open ZIP file and verify if the file exists
|
if (strtolower(substr($pFilename, 0, 3)) == 'zip') {
|
||||||
$zipFile = substr($pFilename, 6, strpos($pFilename, '#') - 6);
|
// Open ZIP file and verify if the file exists
|
||||||
$archiveFile = substr($pFilename, strpos($pFilename, '#') + 1);
|
$zipFile = substr($pFilename, 6, strpos($pFilename, '#') - 6);
|
||||||
|
$archiveFile = substr($pFilename, strpos($pFilename, '#') + 1);
|
||||||
|
|
||||||
$zip = new ZipArchive();
|
$zip = new ZipArchive();
|
||||||
if ($zip->open($zipFile) === true) {
|
if ($zip->open($zipFile) === true) {
|
||||||
$returnValue = ($zip->getFromName($archiveFile) !== false);
|
$returnValue = ($zip->getFromName($archiveFile) !== false);
|
||||||
$zip->close();
|
$zip->close();
|
||||||
return $returnValue;
|
return $returnValue;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Regular file_exists
|
// Regular file_exists
|
||||||
return file_exists($pFilename);
|
return file_exists($pFilename);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns canonicalized absolute pathname, also for ZIP archives
|
* Returns canonicalized absolute pathname, also for ZIP archives
|
||||||
*
|
*
|
||||||
* @param string $pFilename
|
* @param string $pFilename
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function realpath($pFilename) {
|
public static function realpath($pFilename)
|
||||||
// Returnvalue
|
{
|
||||||
$returnValue = '';
|
// Returnvalue
|
||||||
|
$returnValue = '';
|
||||||
|
|
||||||
// Try using realpath()
|
// Try using realpath()
|
||||||
$returnValue = realpath($pFilename);
|
$returnValue = realpath($pFilename);
|
||||||
|
|
||||||
// Found something?
|
// Found something?
|
||||||
if ($returnValue == '' || is_null($returnValue)) {
|
if ($returnValue == '' || is_null($returnValue)) {
|
||||||
$pathArray = split('/' , $pFilename);
|
$pathArray = split('/', $pFilename);
|
||||||
while(in_array('..', $pathArray) && $pathArray[0] != '..') {
|
while (in_array('..', $pathArray) && $pathArray[0] != '..') {
|
||||||
for ($i = 0; $i < count($pathArray); ++$i) {
|
for ($i = 0; $i < count($pathArray); ++$i) {
|
||||||
if ($pathArray[$i] == '..' && $i > 0) {
|
if ($pathArray[$i] == '..' && $i > 0) {
|
||||||
unset($pathArray[$i]);
|
unset($pathArray[$i]);
|
||||||
unset($pathArray[$i - 1]);
|
unset($pathArray[$i - 1]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$returnValue = implode('/', $pathArray);
|
$returnValue = implode('/', $pathArray);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return
|
// Return
|
||||||
return $returnValue;
|
return $returnValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,45 +28,51 @@
|
||||||
|
|
||||||
class PHPWord_Shared_Font
|
class PHPWord_Shared_Font
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Calculate an (approximate) pixel size, based on a font points size
|
* Calculate an (approximate) pixel size, based on a font points size
|
||||||
*
|
*
|
||||||
* @param int $fontSizeInPoints Font size (in points)
|
* @param int $fontSizeInPoints Font size (in points)
|
||||||
* @return int Font size (in pixels)
|
* @return int Font size (in pixels)
|
||||||
*/
|
*/
|
||||||
public static function fontSizeToPixels($fontSizeInPoints = 12) {
|
public static function fontSizeToPixels($fontSizeInPoints = 12)
|
||||||
return ((16 / 12) * $fontSizeInPoints);
|
{
|
||||||
}
|
return ((16 / 12) * $fontSizeInPoints);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calculate an (approximate) pixel size, based on inch size
|
* Calculate an (approximate) pixel size, based on inch size
|
||||||
*
|
*
|
||||||
* @param int $sizeInInch Font size (in inch)
|
* @param int $sizeInInch Font size (in inch)
|
||||||
* @return int Size (in pixels)
|
* @return int Size (in pixels)
|
||||||
*/
|
*/
|
||||||
public static function inchSizeToPixels($sizeInInch = 1) {
|
public static function inchSizeToPixels($sizeInInch = 1)
|
||||||
return ($sizeInInch * 96);
|
{
|
||||||
}
|
return ($sizeInInch * 96);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calculate an (approximate) pixel size, based on centimeter size
|
* Calculate an (approximate) pixel size, based on centimeter size
|
||||||
*
|
*
|
||||||
* @param int $sizeInCm Font size (in centimeters)
|
* @param int $sizeInCm Font size (in centimeters)
|
||||||
* @return int Size (in pixels)
|
* @return int Size (in pixels)
|
||||||
*/
|
*/
|
||||||
public static function centimeterSizeToPixels($sizeInCm = 1) {
|
public static function centimeterSizeToPixels($sizeInCm = 1)
|
||||||
return ($sizeInCm * 37.795275591);
|
{
|
||||||
}
|
return ($sizeInCm * 37.795275591);
|
||||||
|
}
|
||||||
|
|
||||||
public static function centimeterSizeToTwips($sizeInCm = 1) {
|
public static function centimeterSizeToTwips($sizeInCm = 1)
|
||||||
return ($sizeInCm * 565.217);
|
{
|
||||||
}
|
return ($sizeInCm * 565.217);
|
||||||
|
}
|
||||||
|
|
||||||
public static function inchSizeToTwips($sizeInInch = 1) {
|
public static function inchSizeToTwips($sizeInInch = 1)
|
||||||
return self::centimeterSizeToTwips($sizeInInch * 2.54);
|
{
|
||||||
}
|
return self::centimeterSizeToTwips($sizeInInch * 2.54);
|
||||||
|
}
|
||||||
|
|
||||||
public static function pixelSizeToTwips($sizeInPixel = 1) {
|
public static function pixelSizeToTwips($sizeInPixel = 1)
|
||||||
return self::centimeterSizeToTwips($sizeInPixel / 37.795275591);
|
{
|
||||||
}
|
return self::centimeterSizeToTwips($sizeInPixel / 37.795275591);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,236 +28,241 @@
|
||||||
|
|
||||||
class PHPWord_Shared_String
|
class PHPWord_Shared_String
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Control characters array
|
* Control characters array
|
||||||
*
|
*
|
||||||
* @var string[]
|
* @var string[]
|
||||||
*/
|
*/
|
||||||
private static $_controlCharacters = array();
|
private static $_controlCharacters = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Is mbstring extension avalable?
|
* Is mbstring extension avalable?
|
||||||
*
|
*
|
||||||
* @var boolean
|
* @var boolean
|
||||||
*/
|
*/
|
||||||
private static $_isMbstringEnabled;
|
private static $_isMbstringEnabled;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Is iconv extension avalable?
|
* Is iconv extension avalable?
|
||||||
*
|
*
|
||||||
* @var boolean
|
* @var boolean
|
||||||
*/
|
*/
|
||||||
private static $_isIconvEnabled;
|
private static $_isIconvEnabled;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build control characters array
|
* Build control characters array
|
||||||
*/
|
*/
|
||||||
private static function _buildControlCharacters() {
|
private static function _buildControlCharacters()
|
||||||
for ($i = 0; $i <= 19; ++$i) {
|
{
|
||||||
if ($i != 9 && $i != 10 && $i != 13) {
|
for ($i = 0; $i <= 19; ++$i) {
|
||||||
$find = '_x' . sprintf('%04s' , strtoupper(dechex($i))) . '_';
|
if ($i != 9 && $i != 10 && $i != 13) {
|
||||||
$replace = chr($i);
|
$find = '_x' . sprintf('%04s', strtoupper(dechex($i))) . '_';
|
||||||
self::$_controlCharacters[$find] = $replace;
|
$replace = chr($i);
|
||||||
}
|
self::$_controlCharacters[$find] = $replace;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get whether mbstring extension is available
|
* Get whether mbstring extension is available
|
||||||
*
|
*
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public static function getIsMbstringEnabled()
|
public static function getIsMbstringEnabled()
|
||||||
{
|
{
|
||||||
if (isset(self::$_isMbstringEnabled)) {
|
if (isset(self::$_isMbstringEnabled)) {
|
||||||
return self::$_isMbstringEnabled;
|
return self::$_isMbstringEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
self::$_isMbstringEnabled = function_exists('mb_convert_encoding') ?
|
self::$_isMbstringEnabled = function_exists('mb_convert_encoding') ?
|
||||||
true : false;
|
true : false;
|
||||||
|
|
||||||
return self::$_isMbstringEnabled;
|
return self::$_isMbstringEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get whether iconv extension is available
|
* Get whether iconv extension is available
|
||||||
*
|
*
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public static function getIsIconvEnabled()
|
public static function getIsIconvEnabled()
|
||||||
{
|
{
|
||||||
if (isset(self::$_isIconvEnabled)) {
|
if (isset(self::$_isIconvEnabled)) {
|
||||||
return self::$_isIconvEnabled;
|
return self::$_isIconvEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
self::$_isIconvEnabled = function_exists('iconv') ?
|
self::$_isIconvEnabled = function_exists('iconv') ?
|
||||||
true : false;
|
true : false;
|
||||||
|
|
||||||
return self::$_isIconvEnabled;
|
return self::$_isIconvEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert from OpenXML escaped control character to PHP control character
|
* Convert from OpenXML escaped control character to PHP control character
|
||||||
*
|
*
|
||||||
* Excel 2007 team:
|
* Excel 2007 team:
|
||||||
* ----------------
|
* ----------------
|
||||||
* That's correct, control characters are stored directly in the shared-strings table.
|
* 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:
|
* 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...
|
* _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 (<v>)
|
* So you could end up with something like _x0008_ in a string (either in a cell value (<v>)
|
||||||
* element or in the shared string <t> element.
|
* element or in the shared string <t> element.
|
||||||
*
|
*
|
||||||
* @param string $value Value to unescape
|
* @param string $value Value to unescape
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function ControlCharacterOOXML2PHP($value = '') {
|
public static function ControlCharacterOOXML2PHP($value = '')
|
||||||
if(empty(self::$_controlCharacters)) {
|
{
|
||||||
self::_buildControlCharacters();
|
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
|
* Convert from PHP control character to OpenXML escaped control character
|
||||||
*
|
*
|
||||||
* Excel 2007 team:
|
* Excel 2007 team:
|
||||||
* ----------------
|
* ----------------
|
||||||
* That's correct, control characters are stored directly in the shared-strings table.
|
* 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:
|
* 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...
|
* _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 (<v>)
|
* So you could end up with something like _x0008_ in a string (either in a cell value (<v>)
|
||||||
* element or in the shared string <t> element.
|
* element or in the shared string <t> element.
|
||||||
*
|
*
|
||||||
* @param string $value Value to escape
|
* @param string $value Value to escape
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function ControlCharacterPHP2OOXML($value = '') {
|
public static function ControlCharacterPHP2OOXML($value = '')
|
||||||
if(empty(self::$_controlCharacters)) {
|
{
|
||||||
self::_buildControlCharacters();
|
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 UTF8 data
|
* Check if a string contains UTF8 data
|
||||||
*
|
*
|
||||||
* @param string $value
|
* @param string $value
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public static function IsUTF8($value = '') {
|
public static function IsUTF8($value = '')
|
||||||
return utf8_encode(utf8_decode($value)) === $value;
|
{
|
||||||
}
|
return utf8_encode(utf8_decode($value)) === $value;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Formats a numeric value as a string for output in various output writers
|
* Formats a numeric value as a string for output in various output writers
|
||||||
*
|
*
|
||||||
* @param mixed $value
|
* @param mixed $value
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function FormatNumber($value) {
|
public static function FormatNumber($value)
|
||||||
return number_format($value, 2, '.', '');
|
{
|
||||||
}
|
return number_format($value, 2, '.', '');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts a UTF-8 string into BIFF8 Unicode string data (8-bit string length)
|
* 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
|
* 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
|
* If mbstring extension is not available, ASCII is assumed, and compressed notation is used
|
||||||
* although this will give wrong results for non-ASCII strings
|
* 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
|
* see OpenOffice.org's Documentation of the Microsoft Excel File Format, sect. 2.5.3
|
||||||
*
|
*
|
||||||
* @param string $value UTF-8 encoded string
|
* @param string $value UTF-8 encoded string
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function UTF8toBIFF8UnicodeShort($value)
|
public static function UTF8toBIFF8UnicodeShort($value)
|
||||||
{
|
{
|
||||||
// character count
|
// character count
|
||||||
$ln = self::CountCharacters($value, 'UTF-8');
|
$ln = self::CountCharacters($value, 'UTF-8');
|
||||||
|
|
||||||
// option flags
|
// option flags
|
||||||
$opt = (self::getIsMbstringEnabled() || self::getIsIconvEnabled()) ?
|
$opt = (self::getIsMbstringEnabled() || self::getIsIconvEnabled()) ?
|
||||||
0x0001 : 0x0000;
|
0x0001 : 0x0000;
|
||||||
|
|
||||||
// characters
|
// characters
|
||||||
$chars = self::ConvertEncoding($value, 'UTF-16LE', 'UTF-8');
|
$chars = self::ConvertEncoding($value, 'UTF-16LE', 'UTF-8');
|
||||||
|
|
||||||
$data = pack('CC', $ln, $opt) . $chars;
|
$data = pack('CC', $ln, $opt) . $chars;
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts a UTF-8 string into BIFF8 Unicode string data (16-bit string length)
|
* 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
|
* 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
|
* If mbstring extension is not available, ASCII is assumed, and compressed notation is used
|
||||||
* although this will give wrong results for non-ASCII strings
|
* 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
|
* see OpenOffice.org's Documentation of the Microsoft Excel File Format, sect. 2.5.3
|
||||||
*
|
*
|
||||||
* @param string $value UTF-8 encoded string
|
* @param string $value UTF-8 encoded string
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function UTF8toBIFF8UnicodeLong($value)
|
public static function UTF8toBIFF8UnicodeLong($value)
|
||||||
{
|
{
|
||||||
// character count
|
// character count
|
||||||
$ln = self::CountCharacters($value, 'UTF-8');
|
$ln = self::CountCharacters($value, 'UTF-8');
|
||||||
|
|
||||||
// option flags
|
// option flags
|
||||||
$opt = (self::getIsMbstringEnabled() || self::getIsIconvEnabled()) ?
|
$opt = (self::getIsMbstringEnabled() || self::getIsIconvEnabled()) ?
|
||||||
0x0001 : 0x0000;
|
0x0001 : 0x0000;
|
||||||
|
|
||||||
// characters
|
// characters
|
||||||
$chars = self::ConvertEncoding($value, 'UTF-16LE', 'UTF-8');
|
$chars = self::ConvertEncoding($value, 'UTF-16LE', 'UTF-8');
|
||||||
|
|
||||||
$data = pack('vC', $ln, $opt) . $chars;
|
$data = pack('vC', $ln, $opt) . $chars;
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert string from one encoding to another. First try mbstring, then iconv, or no convertion
|
* Convert string from one encoding to another. First try mbstring, then iconv, or no convertion
|
||||||
*
|
*
|
||||||
* @param string $value
|
* @param string $value
|
||||||
* @param string $to Encoding to convert to, e.g. 'UTF-8'
|
* @param string $to Encoding to convert to, e.g. 'UTF-8'
|
||||||
* @param string $from Encoding to convert from, e.g. 'UTF-16LE'
|
* @param string $from Encoding to convert from, e.g. 'UTF-16LE'
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function ConvertEncoding($value, $to, $from)
|
public static function ConvertEncoding($value, $to, $from)
|
||||||
{
|
{
|
||||||
if (self::getIsMbstringEnabled()) {
|
if (self::getIsMbstringEnabled()) {
|
||||||
$value = mb_convert_encoding($value, $to, $from);
|
$value = mb_convert_encoding($value, $to, $from);
|
||||||
return $value;
|
return $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (self::getIsIconvEnabled()) {
|
if (self::getIsIconvEnabled()) {
|
||||||
$value = iconv($from, $to, $value);
|
$value = iconv($from, $to, $value);
|
||||||
return $value;
|
return $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
// else, no conversion
|
// else, no conversion
|
||||||
return $value;
|
return $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get character count. First try mbstring, then iconv, finally strlen
|
* Get character count. First try mbstring, then iconv, finally strlen
|
||||||
*
|
*
|
||||||
* @param string $value
|
* @param string $value
|
||||||
* @param string $enc Encoding
|
* @param string $enc Encoding
|
||||||
* @return int Character count
|
* @return int Character count
|
||||||
*/
|
*/
|
||||||
public static function CountCharacters($value, $enc = 'UTF-8')
|
public static function CountCharacters($value, $enc = 'UTF-8')
|
||||||
{
|
{
|
||||||
if (self::getIsMbstringEnabled()) {
|
if (self::getIsMbstringEnabled()) {
|
||||||
$count = mb_strlen($value, $enc);
|
$count = mb_strlen($value, $enc);
|
||||||
return $count;
|
return $count;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (self::getIsIconvEnabled()) {
|
if (self::getIsIconvEnabled()) {
|
||||||
$count = iconv_strlen($value, $enc);
|
$count = iconv_strlen($value, $enc);
|
||||||
return $count;
|
return $count;
|
||||||
}
|
}
|
||||||
|
|
||||||
// else strlen
|
// else strlen
|
||||||
$count = strlen($value);
|
$count = strlen($value);
|
||||||
return $count;
|
return $count;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,118 +26,123 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
if(!defined('DATE_W3C')) {
|
if (!defined('DATE_W3C')) {
|
||||||
define('DATE_W3C', 'Y-m-d\TH:i:sP');
|
define('DATE_W3C', 'Y-m-d\TH:i:sP');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class PHPWord_Shared_XMLWriter {
|
class PHPWord_Shared_XMLWriter
|
||||||
/** Temporary storage method */
|
{
|
||||||
const STORAGE_MEMORY = 1;
|
/** Temporary storage method */
|
||||||
const STORAGE_DISK = 2;
|
const STORAGE_MEMORY = 1;
|
||||||
|
const STORAGE_DISK = 2;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Internal XMLWriter
|
* Internal XMLWriter
|
||||||
*
|
*
|
||||||
* @var XMLWriter
|
* @var XMLWriter
|
||||||
*/
|
*/
|
||||||
private $_xmlWriter;
|
private $_xmlWriter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Temporary filename
|
* Temporary filename
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_tempFileName = '';
|
private $_tempFileName = '';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new PHPPowerPoint_Shared_XMLWriter instance
|
* Create a new PHPPowerPoint_Shared_XMLWriter instance
|
||||||
*
|
*
|
||||||
* @param int $pTemporaryStorage Temporary storage location
|
* @param int $pTemporaryStorage Temporary storage location
|
||||||
* @param string $pTemporaryStorageFolder Temporary storage folder
|
* @param string $pTemporaryStorageFolder Temporary storage folder
|
||||||
*/
|
*/
|
||||||
public function __construct($pTemporaryStorage = self::STORAGE_MEMORY, $pTemporaryStorageFolder = './') {
|
public function __construct($pTemporaryStorage = self::STORAGE_MEMORY, $pTemporaryStorageFolder = './')
|
||||||
// Create internal XMLWriter
|
{
|
||||||
$this->_xmlWriter = new XMLWriter();
|
// Create internal XMLWriter
|
||||||
|
$this->_xmlWriter = new XMLWriter();
|
||||||
|
|
||||||
// Open temporary storage
|
// Open temporary storage
|
||||||
if ($pTemporaryStorage == self::STORAGE_MEMORY) {
|
if ($pTemporaryStorage == self::STORAGE_MEMORY) {
|
||||||
$this->_xmlWriter->openMemory();
|
$this->_xmlWriter->openMemory();
|
||||||
} else {
|
} else {
|
||||||
// Create temporary filename
|
// Create temporary filename
|
||||||
$this->_tempFileName = @tempnam($pTemporaryStorageFolder, 'xml');
|
$this->_tempFileName = @tempnam($pTemporaryStorageFolder, 'xml');
|
||||||
|
|
||||||
// Open storage
|
// Open storage
|
||||||
if ($this->_xmlWriter->openUri($this->_tempFileName) === false) {
|
if ($this->_xmlWriter->openUri($this->_tempFileName) === false) {
|
||||||
// Fallback to memory...
|
// Fallback to memory...
|
||||||
$this->_xmlWriter->openMemory();
|
$this->_xmlWriter->openMemory();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set default values
|
// Set default values
|
||||||
// proposed to be false in production version
|
// proposed to be false in production version
|
||||||
$this->_xmlWriter->setIndent(true);
|
$this->_xmlWriter->setIndent(true);
|
||||||
//$this->_xmlWriter->setIndent(false);
|
//$this->_xmlWriter->setIndent(false);
|
||||||
|
|
||||||
// Set indent
|
// Set indent
|
||||||
// proposed to be '' in production version
|
// proposed to be '' in production version
|
||||||
$this->_xmlWriter->setIndentString(' ');
|
$this->_xmlWriter->setIndentString(' ');
|
||||||
//$this->_xmlWriter->setIndentString('');
|
//$this->_xmlWriter->setIndentString('');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destructor
|
* Destructor
|
||||||
*/
|
*/
|
||||||
public function __destruct() {
|
public function __destruct()
|
||||||
// Desctruct XMLWriter
|
{
|
||||||
unset($this->_xmlWriter);
|
// Desctruct XMLWriter
|
||||||
|
unset($this->_xmlWriter);
|
||||||
|
|
||||||
// Unlink temporary files
|
// Unlink temporary files
|
||||||
if ($this->_tempFileName != '') {
|
if ($this->_tempFileName != '') {
|
||||||
@unlink($this->_tempFileName);
|
@unlink($this->_tempFileName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get written data
|
* Get written data
|
||||||
*
|
*
|
||||||
* @return $data
|
* @return $data
|
||||||
*/
|
*/
|
||||||
public function getData() {
|
public function getData()
|
||||||
if ($this->_tempFileName == '') {
|
{
|
||||||
return $this->_xmlWriter->outputMemory(true);
|
if ($this->_tempFileName == '') {
|
||||||
} else {
|
return $this->_xmlWriter->outputMemory(true);
|
||||||
$this->_xmlWriter->flush();
|
} else {
|
||||||
return file_get_contents($this->_tempFileName);
|
$this->_xmlWriter->flush();
|
||||||
}
|
return file_get_contents($this->_tempFileName);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Catch function calls (and pass them to internal XMLWriter)
|
* Catch function calls (and pass them to internal XMLWriter)
|
||||||
*
|
*
|
||||||
* @param unknown_type $function
|
* @param unknown_type $function
|
||||||
* @param unknown_type $args
|
* @param unknown_type $args
|
||||||
*/
|
*/
|
||||||
public function __call($function, $args) {
|
public function __call($function, $args)
|
||||||
try {
|
{
|
||||||
@call_user_func_array(array($this->_xmlWriter, $function), $args);
|
try {
|
||||||
} catch (Exception $ex) {
|
@call_user_func_array(array($this->_xmlWriter, $function), $args);
|
||||||
// Do nothing!
|
} catch (Exception $ex) {
|
||||||
}
|
// Do nothing!
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fallback method for writeRaw, introduced in PHP 5.2
|
* Fallback method for writeRaw, introduced in PHP 5.2
|
||||||
*
|
*
|
||||||
* @param string $text
|
* @param string $text
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function writeRaw($text)
|
public function writeRaw($text)
|
||||||
{
|
{
|
||||||
if (isset($this->_xmlWriter) && is_object($this->_xmlWriter) && (method_exists($this->_xmlWriter, 'writeRaw'))) {
|
if (isset($this->_xmlWriter) && is_object($this->_xmlWriter) && (method_exists($this->_xmlWriter, 'writeRaw'))) {
|
||||||
return $this->_xmlWriter->writeRaw($text);
|
return $this->_xmlWriter->writeRaw($text);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->text($text);
|
return $this->text($text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,147 +30,154 @@
|
||||||
PHPWord_Shared_ZipStreamWrapper::register();
|
PHPWord_Shared_ZipStreamWrapper::register();
|
||||||
|
|
||||||
|
|
||||||
class PHPWord_Shared_ZipStreamWrapper {
|
class PHPWord_Shared_ZipStreamWrapper
|
||||||
/**
|
{
|
||||||
* Internal ZipAcrhive
|
/**
|
||||||
*
|
* Internal ZipAcrhive
|
||||||
* @var ZipAcrhive
|
*
|
||||||
*/
|
* @var ZipAcrhive
|
||||||
private $_archive;
|
*/
|
||||||
|
private $_archive;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filename in ZipAcrhive
|
* Filename in ZipAcrhive
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_fileNameInArchive = '';
|
private $_fileNameInArchive = '';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Position in file
|
* Position in file
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_position = 0;
|
private $_position = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Data
|
* Data
|
||||||
*
|
*
|
||||||
* @var mixed
|
* @var mixed
|
||||||
*/
|
*/
|
||||||
private $_data = '';
|
private $_data = '';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register wrapper
|
* Register wrapper
|
||||||
*/
|
*/
|
||||||
public static function register() {
|
public static function register()
|
||||||
@stream_wrapper_unregister("zip");
|
{
|
||||||
@stream_wrapper_register("zip", __CLASS__);
|
@stream_wrapper_unregister("zip");
|
||||||
}
|
@stream_wrapper_register("zip", __CLASS__);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Open stream
|
* Open stream
|
||||||
*/
|
*/
|
||||||
public function stream_open($path, $mode, $options, &$opened_path) {
|
public function stream_open($path, $mode, $options, &$opened_path)
|
||||||
// Check for mode
|
{
|
||||||
if ($mode{0} != 'r') {
|
// Check for mode
|
||||||
throw new Exception('Mode ' . $mode . ' is not supported. Only read mode is supported.');
|
if ($mode{0} != 'r') {
|
||||||
}
|
throw new Exception('Mode ' . $mode . ' is not supported. Only read mode is supported.');
|
||||||
|
}
|
||||||
|
|
||||||
// Parse URL
|
// Parse URL
|
||||||
$url = @parse_url($path);
|
$url = @parse_url($path);
|
||||||
|
|
||||||
// Fix URL
|
// Fix URL
|
||||||
if (!is_array($url)) {
|
if (!is_array($url)) {
|
||||||
$url['host'] = substr($path, strlen('zip://'));
|
$url['host'] = substr($path, strlen('zip://'));
|
||||||
$url['path'] = '';
|
$url['path'] = '';
|
||||||
}
|
}
|
||||||
if (strpos($url['host'], '#') !== false) {
|
if (strpos($url['host'], '#') !== false) {
|
||||||
if (!isset($url['fragment'])) {
|
if (!isset($url['fragment'])) {
|
||||||
$url['fragment'] = substr($url['host'], strpos($url['host'], '#') + 1) . $url['path'];
|
$url['fragment'] = substr($url['host'], strpos($url['host'], '#') + 1) . $url['path'];
|
||||||
$url['host'] = substr($url['host'], 0, strpos($url['host'], '#'));
|
$url['host'] = substr($url['host'], 0, strpos($url['host'], '#'));
|
||||||
unset($url['path']);
|
unset($url['path']);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$url['host'] = $url['host'] . $url['path'];
|
$url['host'] = $url['host'] . $url['path'];
|
||||||
unset($url['path']);
|
unset($url['path']);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Open archive
|
// Open archive
|
||||||
$this->_archive = new ZipArchive();
|
$this->_archive = new ZipArchive();
|
||||||
$this->_archive->open($url['host']);
|
$this->_archive->open($url['host']);
|
||||||
|
|
||||||
$this->_fileNameInArchive = $url['fragment'];
|
$this->_fileNameInArchive = $url['fragment'];
|
||||||
$this->_position = 0;
|
$this->_position = 0;
|
||||||
$this->_data = $this->_archive->getFromName( $this->_fileNameInArchive );
|
$this->_data = $this->_archive->getFromName($this->_fileNameInArchive);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stat stream
|
* Stat stream
|
||||||
*/
|
*/
|
||||||
public function stream_stat() {
|
public function stream_stat()
|
||||||
return $this->_archive->statName( $this->_fileNameInArchive );
|
{
|
||||||
}
|
return $this->_archive->statName($this->_fileNameInArchive);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read stream
|
* Read stream
|
||||||
*/
|
*/
|
||||||
function stream_read($count) {
|
function stream_read($count)
|
||||||
$ret = substr($this->_data, $this->_position, $count);
|
{
|
||||||
$this->_position += strlen($ret);
|
$ret = substr($this->_data, $this->_position, $count);
|
||||||
return $ret;
|
$this->_position += strlen($ret);
|
||||||
}
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tell stream
|
* Tell stream
|
||||||
*/
|
*/
|
||||||
public function stream_tell() {
|
public function stream_tell()
|
||||||
return $this->_position;
|
{
|
||||||
}
|
return $this->_position;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* EOF stream
|
* EOF stream
|
||||||
*/
|
*/
|
||||||
public function stream_eof() {
|
public function stream_eof()
|
||||||
return $this->_position >= strlen($this->_data);
|
{
|
||||||
}
|
return $this->_position >= strlen($this->_data);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Seek stream
|
* Seek stream
|
||||||
*/
|
*/
|
||||||
public function stream_seek($offset, $whence) {
|
public function stream_seek($offset, $whence)
|
||||||
switch ($whence) {
|
{
|
||||||
case SEEK_SET:
|
switch ($whence) {
|
||||||
if ($offset < strlen($this->_data) && $offset >= 0) {
|
case SEEK_SET:
|
||||||
$this->_position = $offset;
|
if ($offset < strlen($this->_data) && $offset >= 0) {
|
||||||
return true;
|
$this->_position = $offset;
|
||||||
} else {
|
return true;
|
||||||
return false;
|
} else {
|
||||||
}
|
return false;
|
||||||
break;
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case SEEK_CUR:
|
case SEEK_CUR:
|
||||||
if ($offset >= 0) {
|
if ($offset >= 0) {
|
||||||
$this->_position += $offset;
|
$this->_position += $offset;
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SEEK_END:
|
case SEEK_END:
|
||||||
if (strlen($this->_data) + $offset >= 0) {
|
if (strlen($this->_data) + $offset >= 0) {
|
||||||
$this->_position = strlen($this->_data) + $offset;
|
$this->_position = strlen($this->_data) + $offset;
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
|
||||||
|
|
@ -33,133 +33,141 @@
|
||||||
* @package PHPWord_Style
|
* @package PHPWord_Style
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Style {
|
class PHPWord_Style
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Style Elements
|
* Style Elements
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private static $_styleElements = array();
|
private static $_styleElements = array();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a paragraph style
|
* Add a paragraph style
|
||||||
*
|
*
|
||||||
* @param string $styleName
|
* @param string $styleName
|
||||||
* @param array $styles
|
* @param array $styles
|
||||||
*/
|
*/
|
||||||
public static function addParagraphStyle($styleName, $styles) {
|
public static function addParagraphStyle($styleName, $styles)
|
||||||
if(!array_key_exists($styleName, self::$_styleElements)) {
|
{
|
||||||
$style = new PHPWord_Style_Paragraph();
|
if (!array_key_exists($styleName, self::$_styleElements)) {
|
||||||
foreach($styles as $key => $value) {
|
$style = new PHPWord_Style_Paragraph();
|
||||||
if(substr($key, 0, 1) != '_') {
|
foreach ($styles as $key => $value) {
|
||||||
$key = '_'.$key;
|
if (substr($key, 0, 1) != '_') {
|
||||||
}
|
$key = '_' . $key;
|
||||||
$style->setStyleValue($key, $value);
|
}
|
||||||
}
|
$style->setStyleValue($key, $value);
|
||||||
|
}
|
||||||
|
|
||||||
self::$_styleElements[$styleName] = $style;
|
self::$_styleElements[$styleName] = $style;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a font style
|
* Add a font style
|
||||||
*
|
*
|
||||||
* @param string $styleName
|
* @param string $styleName
|
||||||
* @param array $styleFont
|
* @param array $styleFont
|
||||||
* @param array $styleParagraph
|
* @param array $styleParagraph
|
||||||
*/
|
*/
|
||||||
public static function addFontStyle($styleName, $styleFont, $styleParagraph = null) {
|
public static function addFontStyle($styleName, $styleFont, $styleParagraph = null)
|
||||||
if(!array_key_exists($styleName, self::$_styleElements)) {
|
{
|
||||||
$font = new PHPWord_Style_Font('text', $styleParagraph);
|
if (!array_key_exists($styleName, self::$_styleElements)) {
|
||||||
foreach($styleFont as $key => $value) {
|
$font = new PHPWord_Style_Font('text', $styleParagraph);
|
||||||
if(substr($key, 0, 1) != '_') {
|
foreach ($styleFont as $key => $value) {
|
||||||
$key = '_'.$key;
|
if (substr($key, 0, 1) != '_') {
|
||||||
}
|
$key = '_' . $key;
|
||||||
$font->setStyleValue($key, $value);
|
}
|
||||||
}
|
$font->setStyleValue($key, $value);
|
||||||
self::$_styleElements[$styleName] = $font;
|
}
|
||||||
}
|
self::$_styleElements[$styleName] = $font;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a link style
|
* Add a link style
|
||||||
*
|
*
|
||||||
* @param string $styleName
|
* @param string $styleName
|
||||||
* @param array $styles
|
* @param array $styles
|
||||||
*/
|
*/
|
||||||
public static function addLinkStyle($styleName, $styles) {
|
public static function addLinkStyle($styleName, $styles)
|
||||||
if(!array_key_exists($styleName, self::$_styleElements)) {
|
{
|
||||||
$style = new PHPWord_Style_Font('link');
|
if (!array_key_exists($styleName, self::$_styleElements)) {
|
||||||
foreach($styles as $key => $value) {
|
$style = new PHPWord_Style_Font('link');
|
||||||
if(substr($key, 0, 1) != '_') {
|
foreach ($styles as $key => $value) {
|
||||||
$key = '_'.$key;
|
if (substr($key, 0, 1) != '_') {
|
||||||
}
|
$key = '_' . $key;
|
||||||
$style->setStyleValue($key, $value);
|
}
|
||||||
}
|
$style->setStyleValue($key, $value);
|
||||||
|
}
|
||||||
|
|
||||||
self::$_styleElements[$styleName] = $style;
|
self::$_styleElements[$styleName] = $style;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a table style
|
* Add a table style
|
||||||
*
|
*
|
||||||
* @param string $styleName
|
* @param string $styleName
|
||||||
* @param array $styles
|
* @param array $styles
|
||||||
*/
|
*/
|
||||||
public static function addTableStyle($styleName, $styleTable, $styleFirstRow = null, $styleLastRow = null) {
|
public static function addTableStyle($styleName, $styleTable, $styleFirstRow = null, $styleLastRow = null)
|
||||||
if(!array_key_exists($styleName, self::$_styleElements)) {
|
{
|
||||||
$style = new PHPWord_Style_TableFull($styleTable, $styleFirstRow, $styleLastRow);
|
if (!array_key_exists($styleName, self::$_styleElements)) {
|
||||||
|
$style = new PHPWord_Style_TableFull($styleTable, $styleFirstRow, $styleLastRow);
|
||||||
|
|
||||||
self::$_styleElements[$styleName] = $style;
|
self::$_styleElements[$styleName] = $style;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a title style
|
* Add a title style
|
||||||
*
|
*
|
||||||
* @param string $styleName
|
* @param string $styleName
|
||||||
* @param array $styleFont
|
* @param array $styleFont
|
||||||
* @param array $styleParagraph
|
* @param array $styleParagraph
|
||||||
*/
|
*/
|
||||||
public static function addTitleStyle($titleCount, $styleFont, $styleParagraph = null) {
|
public static function addTitleStyle($titleCount, $styleFont, $styleParagraph = null)
|
||||||
$styleName = 'Heading_'.$titleCount;
|
{
|
||||||
if(!array_key_exists($styleName, self::$_styleElements)) {
|
$styleName = 'Heading_' . $titleCount;
|
||||||
$font = new PHPWord_Style_Font('title', $styleParagraph);
|
if (!array_key_exists($styleName, self::$_styleElements)) {
|
||||||
foreach($styleFont as $key => $value) {
|
$font = new PHPWord_Style_Font('title', $styleParagraph);
|
||||||
if(substr($key, 0, 1) != '_') {
|
foreach ($styleFont as $key => $value) {
|
||||||
$key = '_'.$key;
|
if (substr($key, 0, 1) != '_') {
|
||||||
}
|
$key = '_' . $key;
|
||||||
$font->setStyleValue($key, $value);
|
}
|
||||||
}
|
$font->setStyleValue($key, $value);
|
||||||
|
}
|
||||||
|
|
||||||
self::$_styleElements[$styleName] = $font;
|
self::$_styleElements[$styleName] = $font;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all styles
|
* Get all styles
|
||||||
*
|
*
|
||||||
* @return PHPWord_Style_Font[]
|
* @return PHPWord_Style_Font[]
|
||||||
*/
|
*/
|
||||||
public static function getStyles() {
|
public static function getStyles()
|
||||||
return self::$_styleElements;
|
{
|
||||||
}
|
return self::$_styleElements;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get style
|
* Get style
|
||||||
*
|
*
|
||||||
* @param string
|
* @param string
|
||||||
* @return PHPWord_Style
|
* @return PHPWord_Style
|
||||||
*/
|
*/
|
||||||
public static function getStyle($styleName) {
|
public static function getStyle($styleName)
|
||||||
if(array_key_exists($styleName, self::$_styleElements)){
|
{
|
||||||
return self::$_styleElements[$styleName];
|
if (array_key_exists($styleName, self::$_styleElements)) {
|
||||||
} else {
|
return self::$_styleElements[$styleName];
|
||||||
return null;
|
} else {
|
||||||
}
|
return null;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
|
||||||
|
|
@ -33,259 +33,289 @@
|
||||||
* @package PHPWord_Style
|
* @package PHPWord_Style
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Style_Cell {
|
class PHPWord_Style_Cell
|
||||||
|
{
|
||||||
|
|
||||||
const TEXT_DIR_BTLR = 'btLr';
|
const TEXT_DIR_BTLR = 'btLr';
|
||||||
const TEXT_DIR_TBRL = 'tbRl';
|
const TEXT_DIR_TBRL = 'tbRl';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Vertical align
|
* Vertical align
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_valign;
|
private $_valign;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Text Direction
|
* Text Direction
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_textDirection;
|
private $_textDirection;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Background-Color
|
* Background-Color
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_bgColor;
|
private $_bgColor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Border Top Size
|
* Border Top Size
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_borderTopSize;
|
private $_borderTopSize;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Border Top Color
|
* Border Top Color
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_borderTopColor;
|
private $_borderTopColor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Border Left Size
|
* Border Left Size
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_borderLeftSize;
|
private $_borderLeftSize;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Border Left Color
|
* Border Left Color
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_borderLeftColor;
|
private $_borderLeftColor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Border Right Size
|
* Border Right Size
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_borderRightSize;
|
private $_borderRightSize;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Border Right Color
|
* Border Right Color
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_borderRightColor;
|
private $_borderRightColor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Border Bottom Size
|
* Border Bottom Size
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_borderBottomSize;
|
private $_borderBottomSize;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Border Bottom Color
|
* Border Bottom Color
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_borderBottomColor;
|
private $_borderBottomColor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Border Default Color
|
* Border Default Color
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_defaultBorderColor;
|
private $_defaultBorderColor;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new Cell Style
|
* Create a new Cell Style
|
||||||
*/
|
*/
|
||||||
public function __construct() {
|
public function __construct()
|
||||||
$this->_valign = null;
|
{
|
||||||
$this->_textDirection = null;
|
$this->_valign = null;
|
||||||
$this->_bgColor = null;
|
$this->_textDirection = null;
|
||||||
$this->_borderTopSize = null;
|
$this->_bgColor = null;
|
||||||
$this->_borderTopColor = null;
|
$this->_borderTopSize = null;
|
||||||
$this->_borderLeftSize = null;
|
$this->_borderTopColor = null;
|
||||||
$this->_borderLeftColor = null;
|
$this->_borderLeftSize = null;
|
||||||
$this->_borderRightSize = null;
|
$this->_borderLeftColor = null;
|
||||||
$this->_borderRightColor = null;
|
$this->_borderRightSize = null;
|
||||||
$this->_borderBottomSize = null;
|
$this->_borderRightColor = null;
|
||||||
$this->_borderBottomColor = null;
|
$this->_borderBottomSize = null;
|
||||||
$this->_defaultBorderColor = '000000';
|
$this->_borderBottomColor = null;
|
||||||
}
|
$this->_defaultBorderColor = '000000';
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set style value
|
* Set style value
|
||||||
*
|
*
|
||||||
* @var string $key
|
* @var string $key
|
||||||
* @var mixed $value
|
* @var mixed $value
|
||||||
*/
|
*/
|
||||||
public function setStyleValue($key, $value) {
|
public function setStyleValue($key, $value)
|
||||||
if($key == '_borderSize') {
|
{
|
||||||
$this->setBorderSize($value);
|
if ($key == '_borderSize') {
|
||||||
} elseif($key == '_borderColor') {
|
$this->setBorderSize($value);
|
||||||
$this->setBorderColor($value);
|
} elseif ($key == '_borderColor') {
|
||||||
} else {
|
$this->setBorderColor($value);
|
||||||
$this->$key = $value;
|
} else {
|
||||||
}
|
$this->$key = $value;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function getVAlign() {
|
public function getVAlign()
|
||||||
return $this->_valign;
|
{
|
||||||
}
|
return $this->_valign;
|
||||||
|
}
|
||||||
|
|
||||||
public function setVAlign($pValue = null) {
|
public function setVAlign($pValue = null)
|
||||||
$this->_valign = $pValue;
|
{
|
||||||
}
|
$this->_valign = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function getTextDirection() {
|
public function getTextDirection()
|
||||||
return $this->_textDirection;
|
{
|
||||||
}
|
return $this->_textDirection;
|
||||||
|
}
|
||||||
|
|
||||||
public function setTextDirection($pValue = null) {
|
public function setTextDirection($pValue = null)
|
||||||
$this->_textDirection = $pValue;
|
{
|
||||||
}
|
$this->_textDirection = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function getBgColor() {
|
public function getBgColor()
|
||||||
return $this->_bgColor;
|
{
|
||||||
}
|
return $this->_bgColor;
|
||||||
|
}
|
||||||
|
|
||||||
public function setBgColor($pValue = null) {
|
public function setBgColor($pValue = null)
|
||||||
$this->_bgColor = $pValue;
|
{
|
||||||
}
|
$this->_bgColor = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function setHeight($pValue = null) {
|
public function setHeight($pValue = null)
|
||||||
$this->_height = $pValue;
|
{
|
||||||
}
|
$this->_height = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function setBorderSize($pValue = null) {
|
public function setBorderSize($pValue = null)
|
||||||
$this->_borderTopSize = $pValue;
|
{
|
||||||
$this->_borderLeftSize = $pValue;
|
$this->_borderTopSize = $pValue;
|
||||||
$this->_borderRightSize = $pValue;
|
$this->_borderLeftSize = $pValue;
|
||||||
$this->_borderBottomSize = $pValue;
|
$this->_borderRightSize = $pValue;
|
||||||
}
|
$this->_borderBottomSize = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function getBorderSize() {
|
public function getBorderSize()
|
||||||
$t = $this->getBorderTopSize();
|
{
|
||||||
$l = $this->getBorderLeftSize();
|
$t = $this->getBorderTopSize();
|
||||||
$r = $this->getBorderRightSize();
|
$l = $this->getBorderLeftSize();
|
||||||
$b = $this->getBorderBottomSize();
|
$r = $this->getBorderRightSize();
|
||||||
|
$b = $this->getBorderBottomSize();
|
||||||
|
|
||||||
return array($t, $l, $r, $b);
|
return array($t, $l, $r, $b);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setBorderColor($pValue = null) {
|
public function setBorderColor($pValue = null)
|
||||||
$this->_borderTopColor = $pValue;
|
{
|
||||||
$this->_borderLeftColor = $pValue;
|
$this->_borderTopColor = $pValue;
|
||||||
$this->_borderRightColor = $pValue;
|
$this->_borderLeftColor = $pValue;
|
||||||
$this->_borderBottomColor = $pValue;
|
$this->_borderRightColor = $pValue;
|
||||||
}
|
$this->_borderBottomColor = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function getBorderColor() {
|
public function getBorderColor()
|
||||||
$t = $this->getBorderTopColor();
|
{
|
||||||
$l = $this->getBorderLeftColor();
|
$t = $this->getBorderTopColor();
|
||||||
$r = $this->getBorderRightColor();
|
$l = $this->getBorderLeftColor();
|
||||||
$b = $this->getBorderBottomColor();
|
$r = $this->getBorderRightColor();
|
||||||
|
$b = $this->getBorderBottomColor();
|
||||||
|
|
||||||
return array($t, $l, $r, $b);
|
return array($t, $l, $r, $b);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setBorderTopSize($pValue = null) {
|
public function setBorderTopSize($pValue = null)
|
||||||
$this->_borderTopSize = $pValue;
|
{
|
||||||
}
|
$this->_borderTopSize = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function getBorderTopSize() {
|
public function getBorderTopSize()
|
||||||
return $this->_borderTopSize;
|
{
|
||||||
}
|
return $this->_borderTopSize;
|
||||||
|
}
|
||||||
|
|
||||||
public function setBorderTopColor($pValue = null) {
|
public function setBorderTopColor($pValue = null)
|
||||||
$this->_borderTopColor = $pValue;
|
{
|
||||||
}
|
$this->_borderTopColor = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function getBorderTopColor() {
|
public function getBorderTopColor()
|
||||||
return $this->_borderTopColor;
|
{
|
||||||
}
|
return $this->_borderTopColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function setBorderLeftSize($pValue = null) {
|
public function setBorderLeftSize($pValue = null)
|
||||||
$this->_borderLeftSize = $pValue;
|
{
|
||||||
}
|
$this->_borderLeftSize = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function getBorderLeftSize() {
|
public function getBorderLeftSize()
|
||||||
return $this->_borderLeftSize;
|
{
|
||||||
}
|
return $this->_borderLeftSize;
|
||||||
|
}
|
||||||
|
|
||||||
public function setBorderLeftColor($pValue = null) {
|
public function setBorderLeftColor($pValue = null)
|
||||||
$this->_borderLeftColor = $pValue;
|
{
|
||||||
}
|
$this->_borderLeftColor = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function getBorderLeftColor() {
|
public function getBorderLeftColor()
|
||||||
return $this->_borderLeftColor;
|
{
|
||||||
}
|
return $this->_borderLeftColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function setBorderRightSize($pValue = null) {
|
public function setBorderRightSize($pValue = null)
|
||||||
$this->_borderRightSize = $pValue;
|
{
|
||||||
}
|
$this->_borderRightSize = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function getBorderRightSize() {
|
public function getBorderRightSize()
|
||||||
return $this->_borderRightSize;
|
{
|
||||||
}
|
return $this->_borderRightSize;
|
||||||
|
}
|
||||||
|
|
||||||
public function setBorderRightColor($pValue = null) {
|
public function setBorderRightColor($pValue = null)
|
||||||
$this->_borderRightColor = $pValue;
|
{
|
||||||
}
|
$this->_borderRightColor = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function getBorderRightColor() {
|
public function getBorderRightColor()
|
||||||
return $this->_borderRightColor;
|
{
|
||||||
}
|
return $this->_borderRightColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function setBorderBottomSize($pValue = null) {
|
public function setBorderBottomSize($pValue = null)
|
||||||
$this->_borderBottomSize = $pValue;
|
{
|
||||||
}
|
$this->_borderBottomSize = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function getBorderBottomSize() {
|
public function getBorderBottomSize()
|
||||||
return $this->_borderBottomSize;
|
{
|
||||||
}
|
return $this->_borderBottomSize;
|
||||||
|
}
|
||||||
|
|
||||||
public function setBorderBottomColor($pValue = null) {
|
public function setBorderBottomColor($pValue = null)
|
||||||
$this->_borderBottomColor = $pValue;
|
{
|
||||||
}
|
$this->_borderBottomColor = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function getBorderBottomColor() {
|
public function getBorderBottomColor()
|
||||||
return $this->_borderBottomColor;
|
{
|
||||||
}
|
return $this->_borderBottomColor;
|
||||||
|
}
|
||||||
|
|
||||||
public function getDefaultBorderColor() {
|
public function getDefaultBorderColor()
|
||||||
return $this->_defaultBorderColor;
|
{
|
||||||
}
|
return $this->_defaultBorderColor;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -33,229 +33,253 @@
|
||||||
* @package PHPWord_Style
|
* @package PHPWord_Style
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Style_Font {
|
class PHPWord_Style_Font
|
||||||
|
{
|
||||||
|
|
||||||
const UNDERLINE_NONE = 'none';
|
const UNDERLINE_NONE = 'none';
|
||||||
const UNDERLINE_DASH = 'dash';
|
const UNDERLINE_DASH = 'dash';
|
||||||
const UNDERLINE_DASHHEAVY = 'dashHeavy';
|
const UNDERLINE_DASHHEAVY = 'dashHeavy';
|
||||||
const UNDERLINE_DASHLONG = 'dashLong';
|
const UNDERLINE_DASHLONG = 'dashLong';
|
||||||
const UNDERLINE_DASHLONGHEAVY = 'dashLongHeavy';
|
const UNDERLINE_DASHLONGHEAVY = 'dashLongHeavy';
|
||||||
const UNDERLINE_DOUBLE = 'dbl';
|
const UNDERLINE_DOUBLE = 'dbl';
|
||||||
const UNDERLINE_DOTHASH = 'dotDash';
|
const UNDERLINE_DOTHASH = 'dotDash';
|
||||||
const UNDERLINE_DOTHASHHEAVY = 'dotDashHeavy';
|
const UNDERLINE_DOTHASHHEAVY = 'dotDashHeavy';
|
||||||
const UNDERLINE_DOTDOTDASH = 'dotDotDash';
|
const UNDERLINE_DOTDOTDASH = 'dotDotDash';
|
||||||
const UNDERLINE_DOTDOTDASHHEAVY = 'dotDotDashHeavy';
|
const UNDERLINE_DOTDOTDASHHEAVY = 'dotDotDashHeavy';
|
||||||
const UNDERLINE_DOTTED = 'dotted';
|
const UNDERLINE_DOTTED = 'dotted';
|
||||||
const UNDERLINE_DOTTEDHEAVY = 'dottedHeavy';
|
const UNDERLINE_DOTTEDHEAVY = 'dottedHeavy';
|
||||||
const UNDERLINE_HEAVY = 'heavy';
|
const UNDERLINE_HEAVY = 'heavy';
|
||||||
const UNDERLINE_SINGLE = 'single';
|
const UNDERLINE_SINGLE = 'single';
|
||||||
const UNDERLINE_WAVY = 'wavy';
|
const UNDERLINE_WAVY = 'wavy';
|
||||||
const UNDERLINE_WAVYDOUBLE = 'wavyDbl';
|
const UNDERLINE_WAVYDOUBLE = 'wavyDbl';
|
||||||
const UNDERLINE_WAVYHEAVY = 'wavyHeavy';
|
const UNDERLINE_WAVYHEAVY = 'wavyHeavy';
|
||||||
const UNDERLINE_WORDS = 'words';
|
const UNDERLINE_WORDS = 'words';
|
||||||
|
|
||||||
const FGCOLOR_YELLOW = 'yellow';
|
const FGCOLOR_YELLOW = 'yellow';
|
||||||
const FGCOLOR_LIGHTGREEN = 'green';
|
const FGCOLOR_LIGHTGREEN = 'green';
|
||||||
const FGCOLOR_CYAN = 'cyan';
|
const FGCOLOR_CYAN = 'cyan';
|
||||||
const FGCOLOR_MAGENTA = 'magenta';
|
const FGCOLOR_MAGENTA = 'magenta';
|
||||||
const FGCOLOR_BLUE = 'blue';
|
const FGCOLOR_BLUE = 'blue';
|
||||||
const FGCOLOR_RED = 'red';
|
const FGCOLOR_RED = 'red';
|
||||||
const FGCOLOR_DARKBLUE = 'darkBlue';
|
const FGCOLOR_DARKBLUE = 'darkBlue';
|
||||||
const FGCOLOR_DARKCYAN = 'darkCyan';
|
const FGCOLOR_DARKCYAN = 'darkCyan';
|
||||||
const FGCOLOR_DARKGREEN = 'darkGreen';
|
const FGCOLOR_DARKGREEN = 'darkGreen';
|
||||||
const FGCOLOR_DARKMAGENTA = 'darkMagenta';
|
const FGCOLOR_DARKMAGENTA = 'darkMagenta';
|
||||||
const FGCOLOR_DARKRED = 'darkRed';
|
const FGCOLOR_DARKRED = 'darkRed';
|
||||||
const FGCOLOR_DARKYELLOW = 'darkYellow';
|
const FGCOLOR_DARKYELLOW = 'darkYellow';
|
||||||
const FGCOLOR_DARKGRAY = 'darkGray';
|
const FGCOLOR_DARKGRAY = 'darkGray';
|
||||||
const FGCOLOR_LIGHTGRAY = 'lightGray';
|
const FGCOLOR_LIGHTGRAY = 'lightGray';
|
||||||
const FGCOLOR_BLACK = 'black';
|
const FGCOLOR_BLACK = 'black';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Font style type
|
* Font style type
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_type;
|
private $_type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Paragraph Style
|
* Paragraph Style
|
||||||
*
|
*
|
||||||
* @var PHPWord_Style_Paragraph
|
* @var PHPWord_Style_Paragraph
|
||||||
*/
|
*/
|
||||||
private $_paragraphStyle;
|
private $_paragraphStyle;
|
||||||
|
|
||||||
private $_size;
|
private $_size;
|
||||||
private $_name;
|
private $_name;
|
||||||
private $_bold;
|
private $_bold;
|
||||||
private $_italic;
|
private $_italic;
|
||||||
private $_superScript;
|
private $_superScript;
|
||||||
private $_subScript;
|
private $_subScript;
|
||||||
private $_underline;
|
private $_underline;
|
||||||
private $_strikethrough;
|
private $_strikethrough;
|
||||||
private $_color;
|
private $_color;
|
||||||
private $_fgColor;
|
private $_fgColor;
|
||||||
|
|
||||||
public function __construct($type = 'text', $styleParagraph = null) {
|
public function __construct($type = 'text', $styleParagraph = null)
|
||||||
$this->_type = $type;
|
{
|
||||||
$this->_name = 'Arial';
|
$this->_type = $type;
|
||||||
$this->_size = 20;
|
$this->_name = 'Arial';
|
||||||
$this->_bold = false;
|
$this->_size = 20;
|
||||||
$this->_italic = false;
|
$this->_bold = false;
|
||||||
$this->_superScript = false;
|
$this->_italic = false;
|
||||||
$this->_subScript = false;
|
$this->_superScript = false;
|
||||||
$this->_underline = PHPWord_Style_Font::UNDERLINE_NONE;
|
$this->_subScript = false;
|
||||||
$this->_strikethrough = false;
|
$this->_underline = PHPWord_Style_Font::UNDERLINE_NONE;
|
||||||
$this->_color = '000000';
|
$this->_strikethrough = false;
|
||||||
$this->_fgColor = null;
|
$this->_color = '000000';
|
||||||
|
$this->_fgColor = null;
|
||||||
|
|
||||||
if(!is_null($styleParagraph)) {
|
if (!is_null($styleParagraph)) {
|
||||||
$paragraph = new PHPWord_Style_Paragraph();
|
$paragraph = new PHPWord_Style_Paragraph();
|
||||||
foreach($styleParagraph as $key => $value) {
|
foreach ($styleParagraph as $key => $value) {
|
||||||
if(substr($key, 0, 1) != '_') {
|
if (substr($key, 0, 1) != '_') {
|
||||||
$key = '_'.$key;
|
$key = '_' . $key;
|
||||||
}
|
}
|
||||||
$paragraph->setStyleValue($key, $value);
|
$paragraph->setStyleValue($key, $value);
|
||||||
}
|
}
|
||||||
$this->_paragraphStyle = $paragraph;
|
$this->_paragraphStyle = $paragraph;
|
||||||
} else {
|
} else {
|
||||||
$this->_paragraphStyle = null;
|
$this->_paragraphStyle = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName() {
|
public function getName()
|
||||||
return $this->_name;
|
{
|
||||||
}
|
return $this->_name;
|
||||||
|
}
|
||||||
|
|
||||||
public function setStyleValue($key, $value) {
|
public function setStyleValue($key, $value)
|
||||||
if($key == '_size') {
|
{
|
||||||
$value *= 2;
|
if ($key == '_size') {
|
||||||
}
|
$value *= 2;
|
||||||
$this->$key = $value;
|
}
|
||||||
}
|
$this->$key = $value;
|
||||||
|
}
|
||||||
|
|
||||||
public function setName($pValue = 'Arial') {
|
public function setName($pValue = 'Arial')
|
||||||
if($pValue == '') {
|
{
|
||||||
$pValue = 'Arial';
|
if ($pValue == '') {
|
||||||
}
|
$pValue = 'Arial';
|
||||||
$this->_name = $pValue;
|
}
|
||||||
return $this;
|
$this->_name = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
public function getSize() {
|
public function getSize()
|
||||||
return $this->_size;
|
{
|
||||||
}
|
return $this->_size;
|
||||||
|
}
|
||||||
|
|
||||||
public function setSize($pValue = 20) {
|
public function setSize($pValue = 20)
|
||||||
if($pValue == '') {
|
{
|
||||||
$pValue = 20;
|
if ($pValue == '') {
|
||||||
}
|
$pValue = 20;
|
||||||
$this->_size = ($pValue*2);
|
}
|
||||||
return $this;
|
$this->_size = ($pValue * 2);
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
public function getBold() {
|
public function getBold()
|
||||||
return $this->_bold;
|
{
|
||||||
}
|
return $this->_bold;
|
||||||
|
}
|
||||||
|
|
||||||
public function setBold($pValue = false) {
|
public function setBold($pValue = false)
|
||||||
if($pValue == '') {
|
{
|
||||||
$pValue = false;
|
if ($pValue == '') {
|
||||||
}
|
$pValue = false;
|
||||||
$this->_bold = $pValue;
|
}
|
||||||
return $this;
|
$this->_bold = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
public function getItalic() {
|
public function getItalic()
|
||||||
return $this->_italic;
|
{
|
||||||
}
|
return $this->_italic;
|
||||||
|
}
|
||||||
|
|
||||||
public function setItalic($pValue = false) {
|
public function setItalic($pValue = false)
|
||||||
if($pValue == '') {
|
{
|
||||||
$pValue = false;
|
if ($pValue == '') {
|
||||||
}
|
$pValue = false;
|
||||||
$this->_italic = $pValue;
|
}
|
||||||
return $this;
|
$this->_italic = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
public function getSuperScript() {
|
public function getSuperScript()
|
||||||
return $this->_superScript;
|
{
|
||||||
}
|
return $this->_superScript;
|
||||||
|
}
|
||||||
|
|
||||||
public function setSuperScript($pValue = false) {
|
public function setSuperScript($pValue = false)
|
||||||
if($pValue == '') {
|
{
|
||||||
$pValue = false;
|
if ($pValue == '') {
|
||||||
}
|
$pValue = false;
|
||||||
$this->_superScript = $pValue;
|
}
|
||||||
$this->_subScript = !$pValue;
|
$this->_superScript = $pValue;
|
||||||
return $this;
|
$this->_subScript = !$pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
public function getSubScript() {
|
public function getSubScript()
|
||||||
return $this->_subScript;
|
{
|
||||||
}
|
return $this->_subScript;
|
||||||
|
}
|
||||||
|
|
||||||
public function setSubScript($pValue = false) {
|
public function setSubScript($pValue = false)
|
||||||
if($pValue == '') {
|
{
|
||||||
$pValue = false;
|
if ($pValue == '') {
|
||||||
}
|
$pValue = false;
|
||||||
$this->_subScript = $pValue;
|
}
|
||||||
$this->_superScript = !$pValue;
|
$this->_subScript = $pValue;
|
||||||
return $this;
|
$this->_superScript = !$pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
public function getUnderline() {
|
public function getUnderline()
|
||||||
return $this->_underline;
|
{
|
||||||
}
|
return $this->_underline;
|
||||||
|
}
|
||||||
|
|
||||||
public function setUnderline($pValue = PHPWord_Style_Font::UNDERLINE_NONE) {
|
public function setUnderline($pValue = PHPWord_Style_Font::UNDERLINE_NONE)
|
||||||
if ($pValue == '') {
|
{
|
||||||
$pValue = PHPWord_Style_Font::UNDERLINE_NONE;
|
if ($pValue == '') {
|
||||||
}
|
$pValue = PHPWord_Style_Font::UNDERLINE_NONE;
|
||||||
$this->_underline = $pValue;
|
}
|
||||||
return $this;
|
$this->_underline = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
public function getStrikethrough() {
|
public function getStrikethrough()
|
||||||
return $this->_strikethrough;
|
{
|
||||||
}
|
return $this->_strikethrough;
|
||||||
|
}
|
||||||
|
|
||||||
public function setStrikethrough($pValue = false) {
|
public function setStrikethrough($pValue = false)
|
||||||
if($pValue == '') {
|
{
|
||||||
$pValue = false;
|
if ($pValue == '') {
|
||||||
}
|
$pValue = false;
|
||||||
$this->_strikethrough = $pValue;
|
}
|
||||||
return $this;
|
$this->_strikethrough = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
public function getColor() {
|
public function getColor()
|
||||||
return $this->_color;
|
{
|
||||||
}
|
return $this->_color;
|
||||||
|
}
|
||||||
|
|
||||||
public function setColor($pValue = '000000') {
|
public function setColor($pValue = '000000')
|
||||||
$this->_color = $pValue;
|
{
|
||||||
return $this;
|
$this->_color = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
public function getFgColor() {
|
public function getFgColor()
|
||||||
return $this->_fgColor;
|
{
|
||||||
}
|
return $this->_fgColor;
|
||||||
|
}
|
||||||
|
|
||||||
public function setFgColor($pValue = null) {
|
public function setFgColor($pValue = null)
|
||||||
$this->_fgColor = $pValue;
|
{
|
||||||
return $this;
|
$this->_fgColor = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
public function getStyleType() {
|
public function getStyleType()
|
||||||
return $this->_type;
|
{
|
||||||
}
|
return $this->_type;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Paragraph style
|
* Get Paragraph style
|
||||||
*
|
*
|
||||||
* @return PHPWord_Style_Paragraph
|
* @return PHPWord_Style_Paragraph
|
||||||
*/
|
*/
|
||||||
public function getParagraphStyle() {
|
public function getParagraphStyle()
|
||||||
return $this->_paragraphStyle;
|
{
|
||||||
}
|
return $this->_paragraphStyle;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
|
||||||
|
|
@ -33,98 +33,110 @@
|
||||||
* @package PHPWord_Section
|
* @package PHPWord_Section
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Style_Image {
|
class PHPWord_Style_Image
|
||||||
|
{
|
||||||
|
|
||||||
private $_width;
|
private $_width;
|
||||||
private $_height;
|
private $_height;
|
||||||
private $_align;
|
private $_align;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Margin Top
|
* Margin Top
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_marginTop;
|
private $_marginTop;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Margin Left
|
* Margin Left
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_marginLeft;
|
private $_marginLeft;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct()
|
||||||
$this->_width = null;
|
{
|
||||||
$this->_height = null;
|
$this->_width = null;
|
||||||
$this->_align = null;
|
$this->_height = null;
|
||||||
$this->_marginTop = null;
|
$this->_align = null;
|
||||||
$this->_marginLeft = null;
|
$this->_marginTop = null;
|
||||||
}
|
$this->_marginLeft = null;
|
||||||
|
}
|
||||||
|
|
||||||
public function setStyleValue($key, $value) {
|
public function setStyleValue($key, $value)
|
||||||
$this->$key = $value;
|
{
|
||||||
}
|
$this->$key = $value;
|
||||||
|
}
|
||||||
|
|
||||||
public function getWidth() {
|
public function getWidth()
|
||||||
return $this->_width;
|
{
|
||||||
}
|
return $this->_width;
|
||||||
|
}
|
||||||
|
|
||||||
public function setWidth($pValue = null) {
|
public function setWidth($pValue = null)
|
||||||
$this->_width = $pValue;
|
{
|
||||||
}
|
$this->_width = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function getHeight() {
|
public function getHeight()
|
||||||
return $this->_height;
|
{
|
||||||
}
|
return $this->_height;
|
||||||
|
}
|
||||||
|
|
||||||
public function setHeight($pValue = null) {
|
public function setHeight($pValue = null)
|
||||||
$this->_height = $pValue;
|
{
|
||||||
}
|
$this->_height = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function getAlign() {
|
public function getAlign()
|
||||||
return $this->_align;
|
{
|
||||||
}
|
return $this->_align;
|
||||||
|
}
|
||||||
|
|
||||||
public function setAlign($pValue = null) {
|
public function setAlign($pValue = null)
|
||||||
$this->_align = $pValue;
|
{
|
||||||
}
|
$this->_align = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Margin Top
|
* Get Margin Top
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getMarginTop() {
|
public function getMarginTop()
|
||||||
return $this->_marginTop;
|
{
|
||||||
}
|
return $this->_marginTop;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Margin Top
|
* Set Margin Top
|
||||||
*
|
*
|
||||||
* @param int $pValue
|
* @param int $pValue
|
||||||
*/
|
*/
|
||||||
public function setMarginTop($pValue = null) {
|
public function setMarginTop($pValue = null)
|
||||||
$this->_marginTop = $pValue;
|
{
|
||||||
return $this;
|
$this->_marginTop = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Margin Left
|
* Get Margin Left
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getMarginLeft() {
|
public function getMarginLeft()
|
||||||
return $this->_marginLeft;
|
{
|
||||||
}
|
return $this->_marginLeft;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Margin Left
|
* Set Margin Left
|
||||||
*
|
*
|
||||||
* @param int $pValue
|
* @param int $pValue
|
||||||
*/
|
*/
|
||||||
public function setMarginLeft($pValue = null) {
|
public function setMarginLeft($pValue = null)
|
||||||
$this->_marginLeft = $pValue;
|
{
|
||||||
return $this;
|
$this->_marginLeft = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
|
||||||
|
|
@ -33,51 +33,55 @@
|
||||||
* @package PHPWord_Style
|
* @package PHPWord_Style
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Style_ListItem {
|
class PHPWord_Style_ListItem
|
||||||
|
{
|
||||||
|
|
||||||
const TYPE_NUMBER = 7;
|
const TYPE_NUMBER = 7;
|
||||||
const TYPE_NUMBER_NESTED = 8;
|
const TYPE_NUMBER_NESTED = 8;
|
||||||
const TYPE_ALPHANUM = 9;
|
const TYPE_ALPHANUM = 9;
|
||||||
const TYPE_BULLET_FILLED = 3;
|
const TYPE_BULLET_FILLED = 3;
|
||||||
const TYPE_BULLET_EMPTY = 5;
|
const TYPE_BULLET_EMPTY = 5;
|
||||||
const TYPE_SQUARE_FILLED = 1;
|
const TYPE_SQUARE_FILLED = 1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List Type
|
* List Type
|
||||||
*/
|
*/
|
||||||
private $_listType;
|
private $_listType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new ListItem Style
|
* Create a new ListItem Style
|
||||||
*/
|
*/
|
||||||
public function __construct() {
|
public function __construct()
|
||||||
$this->_listType = PHPWord_Style_ListItem::TYPE_BULLET_FILLED;
|
{
|
||||||
}
|
$this->_listType = PHPWord_Style_ListItem::TYPE_BULLET_FILLED;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set style value
|
* Set style value
|
||||||
*
|
*
|
||||||
* @param string $key
|
* @param string $key
|
||||||
* @param string $value
|
* @param string $value
|
||||||
*/
|
*/
|
||||||
public function setStyleValue($key, $value) {
|
public function setStyleValue($key, $value)
|
||||||
$this->$key = $value;
|
{
|
||||||
}
|
$this->$key = $value;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set List Type
|
* Set List Type
|
||||||
*
|
*
|
||||||
* @param int $pValue
|
* @param int $pValue
|
||||||
*/
|
*/
|
||||||
public function setListType($pValue = PHPWord_Style_ListItem::TYPE_BULLET_FILLED) {
|
public function setListType($pValue = PHPWord_Style_ListItem::TYPE_BULLET_FILLED)
|
||||||
$this->_listType = $pValue;
|
{
|
||||||
}
|
$this->_listType = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get List Type
|
* Get List Type
|
||||||
*/
|
*/
|
||||||
public function getListType() {
|
public function getListType()
|
||||||
return $this->_listType;
|
{
|
||||||
}
|
return $this->_listType;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
|
||||||
|
|
@ -33,174 +33,186 @@
|
||||||
* @package PHPWord_Style
|
* @package PHPWord_Style
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Style_Paragraph {
|
class PHPWord_Style_Paragraph
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Paragraph alignment
|
* Paragraph alignment
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_align;
|
private $_align;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Space before Paragraph
|
* Space before Paragraph
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_spaceBefore;
|
private $_spaceBefore;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Space after Paragraph
|
* Space after Paragraph
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_spaceAfter;
|
private $_spaceAfter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Spacing between breaks
|
* Spacing between breaks
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_spacing;
|
private $_spacing;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indent by how much
|
* Indent by how much
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_indent;
|
private $_indent;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* New Paragraph Style
|
* New Paragraph Style
|
||||||
*/
|
*/
|
||||||
public function __construct() {
|
public function __construct()
|
||||||
$this->_align = null;
|
{
|
||||||
$this->_spaceBefore = null;
|
$this->_align = null;
|
||||||
$this->_spaceAfter = null;
|
$this->_spaceBefore = null;
|
||||||
$this->_spacing = null;
|
$this->_spaceAfter = null;
|
||||||
$this->_indent = null;
|
$this->_spacing = null;
|
||||||
}
|
$this->_indent = null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Style value
|
* Set Style value
|
||||||
*
|
*
|
||||||
* @param string $key
|
* @param string $key
|
||||||
* @param mixed $value
|
* @param mixed $value
|
||||||
*/
|
*/
|
||||||
public function setStyleValue($key, $value) {
|
public function setStyleValue($key, $value)
|
||||||
if($key == '_spacing') {
|
{
|
||||||
$value += 240; // because line height of 1 matches 240 twips
|
if ($key == '_spacing') {
|
||||||
}
|
$value += 240; // because line height of 1 matches 240 twips
|
||||||
if($key == '_indent') {
|
}
|
||||||
|
if ($key == '_indent') {
|
||||||
$value = (int)$value * 720; // 720 twips per indent
|
$value = (int)$value * 720; // 720 twips per indent
|
||||||
}
|
}
|
||||||
$this->$key = $value;
|
$this->$key = $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Paragraph Alignment
|
* Get Paragraph Alignment
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getAlign() {
|
public function getAlign()
|
||||||
return $this->_align;
|
{
|
||||||
}
|
return $this->_align;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Paragraph Alignment
|
* Set Paragraph Alignment
|
||||||
*
|
*
|
||||||
* @param string $pValue
|
* @param string $pValue
|
||||||
* @return PHPWord_Style_Paragraph
|
* @return PHPWord_Style_Paragraph
|
||||||
*/
|
*/
|
||||||
public function setAlign($pValue = null) {
|
public function setAlign($pValue = null)
|
||||||
if(strtolower($pValue) == 'justify') {
|
{
|
||||||
// justify becames both
|
if (strtolower($pValue) == 'justify') {
|
||||||
$pValue = 'both';
|
// justify becames both
|
||||||
}
|
$pValue = 'both';
|
||||||
$this->_align = $pValue;
|
}
|
||||||
return $this;
|
$this->_align = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Space before Paragraph
|
* Get Space before Paragraph
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getSpaceBefore() {
|
public function getSpaceBefore()
|
||||||
return $this->_spaceBefore;
|
{
|
||||||
}
|
return $this->_spaceBefore;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Space before Paragraph
|
* Set Space before Paragraph
|
||||||
*
|
*
|
||||||
* @param int $pValue
|
* @param int $pValue
|
||||||
* @return PHPWord_Style_Paragraph
|
* @return PHPWord_Style_Paragraph
|
||||||
*/
|
*/
|
||||||
public function setSpaceBefore($pValue = null) {
|
public function setSpaceBefore($pValue = null)
|
||||||
$this->_spaceBefore = $pValue;
|
{
|
||||||
return $this;
|
$this->_spaceBefore = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Space after Paragraph
|
* Get Space after Paragraph
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getSpaceAfter() {
|
public function getSpaceAfter()
|
||||||
return $this->_spaceAfter;
|
{
|
||||||
}
|
return $this->_spaceAfter;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Space after Paragraph
|
* Set Space after Paragraph
|
||||||
*
|
*
|
||||||
* @param int $pValue
|
* @param int $pValue
|
||||||
* @return PHPWord_Style_Paragraph
|
* @return PHPWord_Style_Paragraph
|
||||||
*/
|
*/
|
||||||
public function setSpaceAfter($pValue = null) {
|
public function setSpaceAfter($pValue = null)
|
||||||
$this->_spaceAfter = $pValue;
|
{
|
||||||
return $this;
|
$this->_spaceAfter = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Spacing between breaks
|
* Get Spacing between breaks
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getSpacing() {
|
public function getSpacing()
|
||||||
return $this->_spacing;
|
{
|
||||||
}
|
return $this->_spacing;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Spacing between breaks
|
* Set Spacing between breaks
|
||||||
*
|
*
|
||||||
* @param int $pValue
|
* @param int $pValue
|
||||||
* @return PHPWord_Style_Paragraph
|
* @return PHPWord_Style_Paragraph
|
||||||
*/
|
*/
|
||||||
public function setSpacing($pValue = null) {
|
public function setSpacing($pValue = null)
|
||||||
$this->_spacing = $pValue;
|
{
|
||||||
return $this;
|
$this->_spacing = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get indentation
|
* Get indentation
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getIndent() {
|
public function getIndent()
|
||||||
return $this->_indent;
|
{
|
||||||
}
|
return $this->_indent;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set indentation
|
* Set indentation
|
||||||
*
|
*
|
||||||
* @param int $pValue
|
* @param int $pValue
|
||||||
* @return PHPWord_Style_Paragraph
|
* @return PHPWord_Style_Paragraph
|
||||||
*/
|
*/
|
||||||
public function setIndent($pValue = null) {
|
public function setIndent($pValue = null)
|
||||||
$this->_indent = $pValue;
|
{
|
||||||
return $this;
|
$this->_indent = $pValue;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -33,106 +33,114 @@
|
||||||
* @package PHPWord_Style
|
* @package PHPWord_Style
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Style_TOC {
|
class PHPWord_Style_TOC
|
||||||
|
{
|
||||||
|
|
||||||
const TABLEADER_DOT = 'dot';
|
const TABLEADER_DOT = 'dot';
|
||||||
const TABLEADER_UNDERSCORE = 'underscore';
|
const TABLEADER_UNDERSCORE = 'underscore';
|
||||||
const TABLEADER_LINE = 'hyphen';
|
const TABLEADER_LINE = 'hyphen';
|
||||||
const TABLEADER_NONE = '';
|
const TABLEADER_NONE = '';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tab Leader
|
* Tab Leader
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_tabLeader;
|
private $_tabLeader;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tab Position
|
* Tab Position
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_tabPos;
|
private $_tabPos;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indent
|
* Indent
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $_indent;
|
private $_indent;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new TOC Style
|
* Create a new TOC Style
|
||||||
*/
|
*/
|
||||||
public function __construct() {
|
public function __construct()
|
||||||
$this->_tabPos = 9062;
|
{
|
||||||
$this->_tabLeader = PHPWord_Style_TOC::TABLEADER_DOT;
|
$this->_tabPos = 9062;
|
||||||
$this->_indent = 200;
|
$this->_tabLeader = PHPWord_Style_TOC::TABLEADER_DOT;
|
||||||
}
|
$this->_indent = 200;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Tab Position
|
* Get Tab Position
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getTabPos() {
|
public function getTabPos()
|
||||||
return $this->_tabPos;
|
{
|
||||||
}
|
return $this->_tabPos;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Tab Position
|
* Set Tab Position
|
||||||
*
|
*
|
||||||
* @param int $pValue
|
* @param int $pValue
|
||||||
*/
|
*/
|
||||||
public function setTabPos($pValue) {
|
public function setTabPos($pValue)
|
||||||
$this->_tabLeader = $pValue;
|
{
|
||||||
}
|
$this->_tabLeader = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Tab Leader
|
* Get Tab Leader
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getTabLeader() {
|
public function getTabLeader()
|
||||||
return $this->_tabLeader;
|
{
|
||||||
}
|
return $this->_tabLeader;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Tab Leader
|
* Set Tab Leader
|
||||||
*
|
*
|
||||||
* @param string $pValue
|
* @param string $pValue
|
||||||
*/
|
*/
|
||||||
public function setTabLeader($pValue = PHPWord_Style_TOC::TABLEADER_DOT) {
|
public function setTabLeader($pValue = PHPWord_Style_TOC::TABLEADER_DOT)
|
||||||
$this->_tabLeader = $pValue;
|
{
|
||||||
}
|
$this->_tabLeader = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Indent
|
* Get Indent
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getIndent() {
|
public function getIndent()
|
||||||
return $this->_indent;
|
{
|
||||||
}
|
return $this->_indent;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Indent
|
* Set Indent
|
||||||
*
|
*
|
||||||
* @param string $pValue
|
* @param string $pValue
|
||||||
*/
|
*/
|
||||||
public function setIndent($pValue) {
|
public function setIndent($pValue)
|
||||||
$this->_indent = $pValue;
|
{
|
||||||
}
|
$this->_indent = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set style value
|
* Set style value
|
||||||
*
|
*
|
||||||
* @param string $key
|
* @param string $key
|
||||||
* @param string $value
|
* @param string $value
|
||||||
*/
|
*/
|
||||||
public function setStyleValue($key, $value) {
|
public function setStyleValue($key, $value)
|
||||||
$this->$key = $value;
|
{
|
||||||
}
|
$this->$key = $value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
|
||||||
|
|
@ -26,58 +26,69 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
class PHPWord_Style_Table {
|
class PHPWord_Style_Table
|
||||||
|
{
|
||||||
|
|
||||||
private $_cellMarginTop;
|
private $_cellMarginTop;
|
||||||
private $_cellMarginLeft;
|
private $_cellMarginLeft;
|
||||||
private $_cellMarginRight;
|
private $_cellMarginRight;
|
||||||
private $_cellMarginBottom;
|
private $_cellMarginBottom;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct()
|
||||||
$this->_cellMarginTop = null;
|
{
|
||||||
$this->_cellMarginLeft = null;
|
$this->_cellMarginTop = null;
|
||||||
$this->_cellMarginRight = null;
|
$this->_cellMarginLeft = null;
|
||||||
$this->_cellMarginBottom = null;
|
$this->_cellMarginRight = null;
|
||||||
}
|
$this->_cellMarginBottom = null;
|
||||||
|
}
|
||||||
|
|
||||||
public function setStyleValue($key, $value) {
|
public function setStyleValue($key, $value)
|
||||||
$this->$key = $value;
|
{
|
||||||
}
|
$this->$key = $value;
|
||||||
|
}
|
||||||
|
|
||||||
public function setCellMarginTop($pValue = null) {
|
public function setCellMarginTop($pValue = null)
|
||||||
$this->_cellMarginTop = $pValue;
|
{
|
||||||
}
|
$this->_cellMarginTop = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function getCellMarginTop() {
|
public function getCellMarginTop()
|
||||||
return $this->_cellMarginTop;
|
{
|
||||||
}
|
return $this->_cellMarginTop;
|
||||||
|
}
|
||||||
|
|
||||||
public function setCellMarginLeft($pValue = null) {
|
public function setCellMarginLeft($pValue = null)
|
||||||
$this->_cellMarginLeft = $pValue;
|
{
|
||||||
}
|
$this->_cellMarginLeft = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function getCellMarginLeft() {
|
public function getCellMarginLeft()
|
||||||
return $this->_cellMarginLeft;
|
{
|
||||||
}
|
return $this->_cellMarginLeft;
|
||||||
|
}
|
||||||
|
|
||||||
public function setCellMarginRight($pValue = null) {
|
public function setCellMarginRight($pValue = null)
|
||||||
$this->_cellMarginRight = $pValue;
|
{
|
||||||
}
|
$this->_cellMarginRight = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function getCellMarginRight() {
|
public function getCellMarginRight()
|
||||||
return $this->_cellMarginRight;
|
{
|
||||||
}
|
return $this->_cellMarginRight;
|
||||||
|
}
|
||||||
|
|
||||||
public function setCellMarginBottom($pValue = null) {
|
public function setCellMarginBottom($pValue = null)
|
||||||
$this->_cellMarginBottom = $pValue;
|
{
|
||||||
}
|
$this->_cellMarginBottom = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
public function getCellMarginBottom() {
|
public function getCellMarginBottom()
|
||||||
return $this->_cellMarginBottom;
|
{
|
||||||
}
|
return $this->_cellMarginBottom;
|
||||||
|
}
|
||||||
|
|
||||||
public function getCellMargin() {
|
public function getCellMargin()
|
||||||
return array($this->_cellMarginTop, $this->_cellMarginLeft, $this->_cellMarginRight, $this->_cellMarginBottom);
|
{
|
||||||
}
|
return array($this->_cellMarginTop, $this->_cellMarginLeft, $this->_cellMarginRight, $this->_cellMarginBottom);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -33,410 +33,454 @@
|
||||||
* @package PHPWord_Style
|
* @package PHPWord_Style
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_Style_TableFull {
|
class PHPWord_Style_TableFull
|
||||||
|
{
|
||||||
/**
|
|
||||||
* Style for first row
|
/**
|
||||||
*
|
* Style for first row
|
||||||
* @var PHPWord_Style_Table
|
*
|
||||||
*/
|
* @var PHPWord_Style_Table
|
||||||
private $_firstRow = null;
|
*/
|
||||||
|
private $_firstRow = null;
|
||||||
/**
|
|
||||||
* Cell Margin Top
|
/**
|
||||||
*
|
* Cell Margin Top
|
||||||
* @var int
|
*
|
||||||
*/
|
* @var int
|
||||||
private $_cellMarginTop = null;
|
*/
|
||||||
|
private $_cellMarginTop = null;
|
||||||
/**
|
|
||||||
* Cell Margin Left
|
/**
|
||||||
*
|
* Cell Margin Left
|
||||||
* @var int
|
*
|
||||||
*/
|
* @var int
|
||||||
private $_cellMarginLeft = null;
|
*/
|
||||||
|
private $_cellMarginLeft = null;
|
||||||
/**
|
|
||||||
* Cell Margin Right
|
/**
|
||||||
*
|
* Cell Margin Right
|
||||||
* @var int
|
*
|
||||||
*/
|
* @var int
|
||||||
private $_cellMarginRight = null;
|
*/
|
||||||
|
private $_cellMarginRight = null;
|
||||||
/**
|
|
||||||
* Cell Margin Bottom
|
/**
|
||||||
*
|
* Cell Margin Bottom
|
||||||
* @var int
|
*
|
||||||
*/
|
* @var int
|
||||||
private $_cellMarginBottom = null;
|
*/
|
||||||
|
private $_cellMarginBottom = null;
|
||||||
/**
|
|
||||||
* Background-Color
|
/**
|
||||||
*
|
* Background-Color
|
||||||
* @var string
|
*
|
||||||
*/
|
* @var string
|
||||||
private $_bgColor;
|
*/
|
||||||
|
private $_bgColor;
|
||||||
/**
|
|
||||||
* Border Top Size
|
/**
|
||||||
*
|
* Border Top Size
|
||||||
* @var int
|
*
|
||||||
*/
|
* @var int
|
||||||
private $_borderTopSize;
|
*/
|
||||||
|
private $_borderTopSize;
|
||||||
/**
|
|
||||||
* Border Top Color
|
/**
|
||||||
*
|
* Border Top Color
|
||||||
* @var string
|
*
|
||||||
*/
|
* @var string
|
||||||
private $_borderTopColor;
|
*/
|
||||||
|
private $_borderTopColor;
|
||||||
/**
|
|
||||||
* Border Left Size
|
/**
|
||||||
*
|
* Border Left Size
|
||||||
* @var int
|
*
|
||||||
*/
|
* @var int
|
||||||
private $_borderLeftSize;
|
*/
|
||||||
|
private $_borderLeftSize;
|
||||||
/**
|
|
||||||
* Border Left Color
|
/**
|
||||||
*
|
* Border Left Color
|
||||||
* @var string
|
*
|
||||||
*/
|
* @var string
|
||||||
private $_borderLeftColor;
|
*/
|
||||||
|
private $_borderLeftColor;
|
||||||
/**
|
|
||||||
* Border Right Size
|
/**
|
||||||
*
|
* Border Right Size
|
||||||
* @var int
|
*
|
||||||
*/
|
* @var int
|
||||||
private $_borderRightSize;
|
*/
|
||||||
|
private $_borderRightSize;
|
||||||
/**
|
|
||||||
* Border Right Color
|
/**
|
||||||
*
|
* Border Right Color
|
||||||
* @var string
|
*
|
||||||
*/
|
* @var string
|
||||||
private $_borderRightColor;
|
*/
|
||||||
|
private $_borderRightColor;
|
||||||
/**
|
|
||||||
* Border Bottom Size
|
/**
|
||||||
*
|
* Border Bottom Size
|
||||||
* @var int
|
*
|
||||||
*/
|
* @var int
|
||||||
private $_borderBottomSize;
|
*/
|
||||||
|
private $_borderBottomSize;
|
||||||
/**
|
|
||||||
* Border Bottom Color
|
/**
|
||||||
*
|
* Border Bottom Color
|
||||||
* @var string
|
*
|
||||||
*/
|
* @var string
|
||||||
private $_borderBottomColor;
|
*/
|
||||||
|
private $_borderBottomColor;
|
||||||
/**
|
|
||||||
* Border InsideH Size
|
/**
|
||||||
*
|
* Border InsideH Size
|
||||||
* @var int
|
*
|
||||||
*/
|
* @var int
|
||||||
private $_borderInsideHSize;
|
*/
|
||||||
|
private $_borderInsideHSize;
|
||||||
/**
|
|
||||||
* Border InsideH Color
|
/**
|
||||||
*
|
* Border InsideH Color
|
||||||
* @var string
|
*
|
||||||
*/
|
* @var string
|
||||||
private $_borderInsideHColor;
|
*/
|
||||||
|
private $_borderInsideHColor;
|
||||||
/**
|
|
||||||
* Border InsideV Size
|
/**
|
||||||
*
|
* Border InsideV Size
|
||||||
* @var int
|
*
|
||||||
*/
|
* @var int
|
||||||
private $_borderInsideVSize;
|
*/
|
||||||
|
private $_borderInsideVSize;
|
||||||
/**
|
|
||||||
* Border InsideV Color
|
/**
|
||||||
*
|
* Border InsideV Color
|
||||||
* @var string
|
*
|
||||||
*/
|
* @var string
|
||||||
private $_borderInsideVColor;
|
*/
|
||||||
|
private $_borderInsideVColor;
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new TableFull Font
|
/**
|
||||||
*/
|
* Create a new TableFull Font
|
||||||
public function __construct($styleTable = null, $styleFirstRow = null, $styleLastRow = null) {
|
*/
|
||||||
|
public function __construct($styleTable = null, $styleFirstRow = null, $styleLastRow = null)
|
||||||
if(!is_null($styleFirstRow) && is_array($styleFirstRow)) {
|
{
|
||||||
$this->_firstRow = clone $this;
|
|
||||||
|
if (!is_null($styleFirstRow) && is_array($styleFirstRow)) {
|
||||||
unset($this->_firstRow->_firstRow);
|
$this->_firstRow = clone $this;
|
||||||
unset($this->_firstRow->_cellMarginBottom);
|
|
||||||
unset($this->_firstRow->_cellMarginTop);
|
unset($this->_firstRow->_firstRow);
|
||||||
unset($this->_firstRow->_cellMarginLeft);
|
unset($this->_firstRow->_cellMarginBottom);
|
||||||
unset($this->_firstRow->_cellMarginRight);
|
unset($this->_firstRow->_cellMarginTop);
|
||||||
unset($this->_firstRow->_borderInsideVColor);
|
unset($this->_firstRow->_cellMarginLeft);
|
||||||
unset($this->_firstRow->_borderInsideVSize);
|
unset($this->_firstRow->_cellMarginRight);
|
||||||
unset($this->_firstRow->_borderInsideHColor);
|
unset($this->_firstRow->_borderInsideVColor);
|
||||||
unset($this->_firstRow->_borderInsideHSize);
|
unset($this->_firstRow->_borderInsideVSize);
|
||||||
foreach($styleFirstRow as $key => $value) {
|
unset($this->_firstRow->_borderInsideHColor);
|
||||||
if(substr($key, 0, 1) != '_') {
|
unset($this->_firstRow->_borderInsideHSize);
|
||||||
$key = '_'.$key;
|
foreach ($styleFirstRow as $key => $value) {
|
||||||
}
|
if (substr($key, 0, 1) != '_') {
|
||||||
|
$key = '_' . $key;
|
||||||
$this->_firstRow->setStyleValue($key, $value);
|
}
|
||||||
}
|
|
||||||
}
|
$this->_firstRow->setStyleValue($key, $value);
|
||||||
|
}
|
||||||
if(!is_null($styleTable) && is_array($styleTable)) {
|
}
|
||||||
foreach($styleTable as $key => $value) {
|
|
||||||
if(substr($key, 0, 1) != '_') {
|
if (!is_null($styleTable) && is_array($styleTable)) {
|
||||||
$key = '_'.$key;
|
foreach ($styleTable as $key => $value) {
|
||||||
}
|
if (substr($key, 0, 1) != '_') {
|
||||||
$this->setStyleValue($key, $value);
|
$key = '_' . $key;
|
||||||
}
|
}
|
||||||
}
|
$this->setStyleValue($key, $value);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
/**
|
}
|
||||||
* Set style value
|
|
||||||
*
|
/**
|
||||||
* @param string $key
|
* Set style value
|
||||||
* @param mixed $value
|
*
|
||||||
*/
|
* @param string $key
|
||||||
public function setStyleValue($key, $value) {
|
* @param mixed $value
|
||||||
if($key == '_borderSize') {
|
*/
|
||||||
$this->setBorderSize($value);
|
public function setStyleValue($key, $value)
|
||||||
} elseif($key == '_borderColor') {
|
{
|
||||||
$this->setBorderColor($value);
|
if ($key == '_borderSize') {
|
||||||
} elseif($key == '_cellMargin') {
|
$this->setBorderSize($value);
|
||||||
$this->setCellMargin($value);
|
} elseif ($key == '_borderColor') {
|
||||||
} else {
|
$this->setBorderColor($value);
|
||||||
$this->$key = $value;
|
} elseif ($key == '_cellMargin') {
|
||||||
}
|
$this->setCellMargin($value);
|
||||||
}
|
} else {
|
||||||
|
$this->$key = $value;
|
||||||
/**
|
}
|
||||||
* Get First Row Style
|
}
|
||||||
*
|
|
||||||
* @return PHPWord_Style_TableFull
|
/**
|
||||||
*/
|
* Get First Row Style
|
||||||
public function getFirstRow() {
|
*
|
||||||
return $this->_firstRow;
|
* @return PHPWord_Style_TableFull
|
||||||
}
|
*/
|
||||||
|
public function getFirstRow()
|
||||||
/**
|
{
|
||||||
* Get Last Row Style
|
return $this->_firstRow;
|
||||||
*
|
}
|
||||||
* @return PHPWord_Style_TableFull
|
|
||||||
*/
|
/**
|
||||||
public function getLastRow() {
|
* Get Last Row Style
|
||||||
return $this->_lastRow;
|
*
|
||||||
}
|
* @return PHPWord_Style_TableFull
|
||||||
|
*/
|
||||||
public function getBgColor() {
|
public function getLastRow()
|
||||||
return $this->_bgColor;
|
{
|
||||||
}
|
return $this->_lastRow;
|
||||||
|
}
|
||||||
public function setBgColor($pValue = null) {
|
|
||||||
$this->_bgColor = $pValue;
|
public function getBgColor()
|
||||||
}
|
{
|
||||||
|
return $this->_bgColor;
|
||||||
/**
|
}
|
||||||
* Set TLRBVH Border Size
|
|
||||||
*
|
public function setBgColor($pValue = null)
|
||||||
* @param int $pValue
|
{
|
||||||
*/
|
$this->_bgColor = $pValue;
|
||||||
public function setBorderSize($pValue = null) {
|
}
|
||||||
$this->_borderTopSize = $pValue;
|
|
||||||
$this->_borderLeftSize = $pValue;
|
/**
|
||||||
$this->_borderRightSize = $pValue;
|
* Set TLRBVH Border Size
|
||||||
$this->_borderBottomSize = $pValue;
|
*
|
||||||
$this->_borderInsideHSize = $pValue;
|
* @param int $pValue
|
||||||
$this->_borderInsideVSize = $pValue;
|
*/
|
||||||
}
|
public function setBorderSize($pValue = null)
|
||||||
|
{
|
||||||
/**
|
$this->_borderTopSize = $pValue;
|
||||||
* Get TLRBVH Border Size
|
$this->_borderLeftSize = $pValue;
|
||||||
*
|
$this->_borderRightSize = $pValue;
|
||||||
* @return array
|
$this->_borderBottomSize = $pValue;
|
||||||
*/
|
$this->_borderInsideHSize = $pValue;
|
||||||
public function getBorderSize() {
|
$this->_borderInsideVSize = $pValue;
|
||||||
$t = $this->getBorderTopSize();
|
}
|
||||||
$l = $this->getBorderLeftSize();
|
|
||||||
$r = $this->getBorderRightSize();
|
/**
|
||||||
$b = $this->getBorderBottomSize();
|
* Get TLRBVH Border Size
|
||||||
$h = $this->getBorderInsideHSize();
|
*
|
||||||
$v = $this->getBorderInsideVSize();
|
* @return array
|
||||||
|
*/
|
||||||
return array($t, $l, $r, $b, $h, $v);
|
public function getBorderSize()
|
||||||
}
|
{
|
||||||
|
$t = $this->getBorderTopSize();
|
||||||
/**
|
$l = $this->getBorderLeftSize();
|
||||||
* Set TLRBVH Border Color
|
$r = $this->getBorderRightSize();
|
||||||
*/
|
$b = $this->getBorderBottomSize();
|
||||||
public function setBorderColor($pValue = null) {
|
$h = $this->getBorderInsideHSize();
|
||||||
$this->_borderTopColor = $pValue;
|
$v = $this->getBorderInsideVSize();
|
||||||
$this->_borderLeftColor = $pValue;
|
|
||||||
$this->_borderRightColor = $pValue;
|
return array($t, $l, $r, $b, $h, $v);
|
||||||
$this->_borderBottomColor = $pValue;
|
}
|
||||||
$this->_borderInsideHColor = $pValue;
|
|
||||||
$this->_borderInsideVColor = $pValue;
|
/**
|
||||||
}
|
* Set TLRBVH Border Color
|
||||||
|
*/
|
||||||
/**
|
public function setBorderColor($pValue = null)
|
||||||
* Get TLRB Border Color
|
{
|
||||||
*
|
$this->_borderTopColor = $pValue;
|
||||||
* @return array
|
$this->_borderLeftColor = $pValue;
|
||||||
*/
|
$this->_borderRightColor = $pValue;
|
||||||
public function getBorderColor() {
|
$this->_borderBottomColor = $pValue;
|
||||||
$t = $this->getBorderTopColor();
|
$this->_borderInsideHColor = $pValue;
|
||||||
$l = $this->getBorderLeftColor();
|
$this->_borderInsideVColor = $pValue;
|
||||||
$r = $this->getBorderRightColor();
|
}
|
||||||
$b = $this->getBorderBottomColor();
|
|
||||||
$h = $this->getBorderInsideHColor();
|
/**
|
||||||
$v = $this->getBorderInsideVColor();
|
* Get TLRB Border Color
|
||||||
|
*
|
||||||
return array($t, $l, $r, $b, $h, $v);
|
* @return array
|
||||||
}
|
*/
|
||||||
|
public function getBorderColor()
|
||||||
public function setBorderTopSize($pValue = null) {
|
{
|
||||||
$this->_borderTopSize = $pValue;
|
$t = $this->getBorderTopColor();
|
||||||
}
|
$l = $this->getBorderLeftColor();
|
||||||
|
$r = $this->getBorderRightColor();
|
||||||
public function getBorderTopSize() {
|
$b = $this->getBorderBottomColor();
|
||||||
return $this->_borderTopSize;
|
$h = $this->getBorderInsideHColor();
|
||||||
}
|
$v = $this->getBorderInsideVColor();
|
||||||
|
|
||||||
public function setBorderTopColor($pValue = null) {
|
return array($t, $l, $r, $b, $h, $v);
|
||||||
$this->_borderTopColor = $pValue;
|
}
|
||||||
}
|
|
||||||
|
public function setBorderTopSize($pValue = null)
|
||||||
public function getBorderTopColor() {
|
{
|
||||||
return $this->_borderTopColor;
|
$this->_borderTopSize = $pValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setBorderLeftSize($pValue = null) {
|
public function getBorderTopSize()
|
||||||
$this->_borderLeftSize = $pValue;
|
{
|
||||||
}
|
return $this->_borderTopSize;
|
||||||
|
}
|
||||||
public function getBorderLeftSize() {
|
|
||||||
return $this->_borderLeftSize;
|
public function setBorderTopColor($pValue = null)
|
||||||
}
|
{
|
||||||
|
$this->_borderTopColor = $pValue;
|
||||||
public function setBorderLeftColor($pValue = null) {
|
}
|
||||||
$this->_borderLeftColor = $pValue;
|
|
||||||
}
|
public function getBorderTopColor()
|
||||||
|
{
|
||||||
public function getBorderLeftColor() {
|
return $this->_borderTopColor;
|
||||||
return $this->_borderLeftColor;
|
}
|
||||||
}
|
|
||||||
|
public function setBorderLeftSize($pValue = null)
|
||||||
public function setBorderRightSize($pValue = null) {
|
{
|
||||||
$this->_borderRightSize = $pValue;
|
$this->_borderLeftSize = $pValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getBorderRightSize() {
|
public function getBorderLeftSize()
|
||||||
return $this->_borderRightSize;
|
{
|
||||||
}
|
return $this->_borderLeftSize;
|
||||||
|
}
|
||||||
public function setBorderRightColor($pValue = null) {
|
|
||||||
$this->_borderRightColor = $pValue;
|
public function setBorderLeftColor($pValue = null)
|
||||||
}
|
{
|
||||||
|
$this->_borderLeftColor = $pValue;
|
||||||
public function getBorderRightColor() {
|
}
|
||||||
return $this->_borderRightColor;
|
|
||||||
}
|
public function getBorderLeftColor()
|
||||||
|
{
|
||||||
public function setBorderBottomSize($pValue = null) {
|
return $this->_borderLeftColor;
|
||||||
$this->_borderBottomSize = $pValue;
|
}
|
||||||
}
|
|
||||||
|
public function setBorderRightSize($pValue = null)
|
||||||
public function getBorderBottomSize() {
|
{
|
||||||
return $this->_borderBottomSize;
|
$this->_borderRightSize = $pValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setBorderBottomColor($pValue = null) {
|
public function getBorderRightSize()
|
||||||
$this->_borderBottomColor = $pValue;
|
{
|
||||||
}
|
return $this->_borderRightSize;
|
||||||
|
}
|
||||||
public function getBorderBottomColor() {
|
|
||||||
return $this->_borderBottomColor;
|
public function setBorderRightColor($pValue = null)
|
||||||
}
|
{
|
||||||
|
$this->_borderRightColor = $pValue;
|
||||||
public function setBorderInsideHColor($pValue = null) {
|
}
|
||||||
$this->_borderInsideHColor = $pValue;
|
|
||||||
}
|
public function getBorderRightColor()
|
||||||
|
{
|
||||||
public function getBorderInsideHColor() {
|
return $this->_borderRightColor;
|
||||||
return (isset($this->_borderInsideHColor)) ? $this->_borderInsideHColor : null;
|
}
|
||||||
}
|
|
||||||
|
public function setBorderBottomSize($pValue = null)
|
||||||
public function setBorderInsideVColor($pValue = null) {
|
{
|
||||||
$this->_borderInsideVColor = $pValue;
|
$this->_borderBottomSize = $pValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getBorderInsideVColor() {
|
public function getBorderBottomSize()
|
||||||
return (isset($this->_borderInsideVColor)) ? $this->_borderInsideVColor : null;
|
{
|
||||||
}
|
return $this->_borderBottomSize;
|
||||||
|
}
|
||||||
public function setBorderInsideHSize($pValue = null) {
|
|
||||||
$this->_borderInsideHSize = $pValue;
|
public function setBorderBottomColor($pValue = null)
|
||||||
}
|
{
|
||||||
|
$this->_borderBottomColor = $pValue;
|
||||||
public function getBorderInsideHSize() {
|
}
|
||||||
return (isset($this->_borderInsideHSize)) ? $this->_borderInsideHSize : null;
|
|
||||||
}
|
public function getBorderBottomColor()
|
||||||
|
{
|
||||||
public function setBorderInsideVSize($pValue = null) {
|
return $this->_borderBottomColor;
|
||||||
$this->_borderInsideVSize = $pValue;
|
}
|
||||||
}
|
|
||||||
|
public function setBorderInsideHColor($pValue = null)
|
||||||
public function getBorderInsideVSize() {
|
{
|
||||||
return (isset($this->_borderInsideVSize)) ? $this->_borderInsideVSize : null;
|
$this->_borderInsideHColor = $pValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setCellMarginTop($pValue = null) {
|
public function getBorderInsideHColor()
|
||||||
$this->_cellMarginTop = $pValue;
|
{
|
||||||
}
|
return (isset($this->_borderInsideHColor)) ? $this->_borderInsideHColor : null;
|
||||||
|
}
|
||||||
public function getCellMarginTop() {
|
|
||||||
return $this->_cellMarginTop;
|
public function setBorderInsideVColor($pValue = null)
|
||||||
}
|
{
|
||||||
|
$this->_borderInsideVColor = $pValue;
|
||||||
public function setCellMarginLeft($pValue = null) {
|
}
|
||||||
$this->_cellMarginLeft = $pValue;
|
|
||||||
}
|
public function getBorderInsideVColor()
|
||||||
|
{
|
||||||
public function getCellMarginLeft() {
|
return (isset($this->_borderInsideVColor)) ? $this->_borderInsideVColor : null;
|
||||||
return $this->_cellMarginLeft;
|
}
|
||||||
}
|
|
||||||
|
public function setBorderInsideHSize($pValue = null)
|
||||||
public function setCellMarginRight($pValue = null) {
|
{
|
||||||
$this->_cellMarginRight = $pValue;
|
$this->_borderInsideHSize = $pValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getCellMarginRight() {
|
public function getBorderInsideHSize()
|
||||||
return $this->_cellMarginRight;
|
{
|
||||||
}
|
return (isset($this->_borderInsideHSize)) ? $this->_borderInsideHSize : null;
|
||||||
|
}
|
||||||
public function setCellMarginBottom($pValue = null) {
|
|
||||||
$this->_cellMarginBottom = $pValue;
|
public function setBorderInsideVSize($pValue = null)
|
||||||
}
|
{
|
||||||
|
$this->_borderInsideVSize = $pValue;
|
||||||
public function getCellMarginBottom() {
|
}
|
||||||
return $this->_cellMarginBottom;
|
|
||||||
}
|
public function getBorderInsideVSize()
|
||||||
|
{
|
||||||
public function setCellMargin($pValue = null) {
|
return (isset($this->_borderInsideVSize)) ? $this->_borderInsideVSize : null;
|
||||||
$this->_cellMarginTop = $pValue;
|
}
|
||||||
$this->_cellMarginLeft = $pValue;
|
|
||||||
$this->_cellMarginRight = $pValue;
|
public function setCellMarginTop($pValue = null)
|
||||||
$this->_cellMarginBottom = $pValue;
|
{
|
||||||
}
|
$this->_cellMarginTop = $pValue;
|
||||||
|
}
|
||||||
public function getCellMargin() {
|
|
||||||
return array($this->_cellMarginTop, $this->_cellMarginLeft, $this->_cellMarginRight, $this->_cellMarginBottom);
|
public function getCellMarginTop()
|
||||||
}
|
{
|
||||||
|
return $this->_cellMarginTop;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setCellMarginLeft($pValue = null)
|
||||||
|
{
|
||||||
|
$this->_cellMarginLeft = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getCellMarginLeft()
|
||||||
|
{
|
||||||
|
return $this->_cellMarginLeft;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setCellMarginRight($pValue = null)
|
||||||
|
{
|
||||||
|
$this->_cellMarginRight = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getCellMarginRight()
|
||||||
|
{
|
||||||
|
return $this->_cellMarginRight;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setCellMarginBottom($pValue = null)
|
||||||
|
{
|
||||||
|
$this->_cellMarginBottom = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getCellMarginBottom()
|
||||||
|
{
|
||||||
|
return $this->_cellMarginBottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setCellMargin($pValue = null)
|
||||||
|
{
|
||||||
|
$this->_cellMarginTop = $pValue;
|
||||||
|
$this->_cellMarginLeft = $pValue;
|
||||||
|
$this->_cellMarginRight = $pValue;
|
||||||
|
$this->_cellMarginBottom = $pValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getCellMargin()
|
||||||
|
{
|
||||||
|
return array($this->_cellMarginTop, $this->_cellMarginLeft, $this->_cellMarginRight, $this->_cellMarginBottom);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -33,123 +33,128 @@
|
||||||
* @package PHPWord_TOC
|
* @package PHPWord_TOC
|
||||||
* @copyright Copyright (c) 2011 PHPWord
|
* @copyright Copyright (c) 2011 PHPWord
|
||||||
*/
|
*/
|
||||||
class PHPWord_TOC {
|
class PHPWord_TOC
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Title Elements
|
* Title Elements
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private static $_titles = array();
|
private static $_titles = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TOC Style
|
* TOC Style
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private static $_styleTOC;
|
private static $_styleTOC;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Font Style
|
* Font Style
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private static $_styleFont;
|
private static $_styleFont;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Title Anchor
|
* Title Anchor
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private static $_anchor = 252634154;
|
private static $_anchor = 252634154;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Title Bookmark
|
* Title Bookmark
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private static $_bookmarkId = 0;
|
private static $_bookmarkId = 0;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new Table-of-Contents Element
|
* Create a new Table-of-Contents Element
|
||||||
*
|
*
|
||||||
* @param array $styleFont
|
* @param array $styleFont
|
||||||
* @param array $styleTOC
|
* @param array $styleTOC
|
||||||
*/
|
*/
|
||||||
public function __construct($styleFont = null, $styleTOC = null) {
|
public function __construct($styleFont = null, $styleTOC = null)
|
||||||
self::$_styleTOC = new PHPWord_Style_TOC();
|
{
|
||||||
|
self::$_styleTOC = new PHPWord_Style_TOC();
|
||||||
|
|
||||||
if(!is_null($styleTOC) && is_array($styleTOC)) {
|
if (!is_null($styleTOC) && is_array($styleTOC)) {
|
||||||
foreach($styleTOC as $key => $value) {
|
foreach ($styleTOC as $key => $value) {
|
||||||
if(substr($key, 0, 1) != '_') {
|
if (substr($key, 0, 1) != '_') {
|
||||||
$key = '_'.$key;
|
$key = '_' . $key;
|
||||||
}
|
}
|
||||||
self::$_styleTOC->setStyleValue($key, $value);
|
self::$_styleTOC->setStyleValue($key, $value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!is_null($styleFont)) {
|
if (!is_null($styleFont)) {
|
||||||
if(is_array($styleFont)) {
|
if (is_array($styleFont)) {
|
||||||
self::$_styleFont = new PHPWord_Style_Font();
|
self::$_styleFont = new PHPWord_Style_Font();
|
||||||
|
|
||||||
foreach($styleFont as $key => $value) {
|
foreach ($styleFont as $key => $value) {
|
||||||
if(substr($key, 0, 1) != '_') {
|
if (substr($key, 0, 1) != '_') {
|
||||||
$key = '_'.$key;
|
$key = '_' . $key;
|
||||||
}
|
}
|
||||||
self::$_styleFont->setStyleValue($key, $value);
|
self::$_styleFont->setStyleValue($key, $value);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
self::$_styleFont = $styleFont;
|
self::$_styleFont = $styleFont;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a Title
|
* Add a Title
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public static function addTitle($text, $depth = 0) {
|
public static function addTitle($text, $depth = 0)
|
||||||
$anchor = '_Toc'.++self::$_anchor;
|
{
|
||||||
$bookmarkId = self::$_bookmarkId++;
|
$anchor = '_Toc' . ++self::$_anchor;
|
||||||
|
$bookmarkId = self::$_bookmarkId++;
|
||||||
|
|
||||||
$title = array();
|
$title = array();
|
||||||
$title['text'] = $text;
|
$title['text'] = $text;
|
||||||
$title['depth'] = $depth;
|
$title['depth'] = $depth;
|
||||||
$title['anchor'] = $anchor;
|
$title['anchor'] = $anchor;
|
||||||
$title['bookmarkId'] = $bookmarkId;
|
$title['bookmarkId'] = $bookmarkId;
|
||||||
|
|
||||||
self::$_titles[] = $title;
|
self::$_titles[] = $title;
|
||||||
|
|
||||||
return array($anchor, $bookmarkId);
|
return array($anchor, $bookmarkId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all titles
|
* Get all titles
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public static function getTitles() {
|
public static function getTitles()
|
||||||
return self::$_titles;
|
{
|
||||||
}
|
return self::$_titles;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get TOC Style
|
* Get TOC Style
|
||||||
*
|
*
|
||||||
* @return PHPWord_Style_TOC
|
* @return PHPWord_Style_TOC
|
||||||
*/
|
*/
|
||||||
public static function getStyleTOC() {
|
public static function getStyleTOC()
|
||||||
return self::$_styleTOC;
|
{
|
||||||
}
|
return self::$_styleTOC;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Font Style
|
* Get Font Style
|
||||||
*
|
*
|
||||||
* @return PHPWord_Style_Font
|
* @return PHPWord_Style_Font
|
||||||
*/
|
*/
|
||||||
public static function getStyleFont() {
|
public static function getStyleFont()
|
||||||
return self::$_styleFont;
|
{
|
||||||
}
|
return self::$_styleFont;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -33,7 +33,8 @@
|
||||||
* @package PHPWord
|
* @package PHPWord
|
||||||
* @copyright Copyright (c) 2009 - 2011 PHPWord (http://www.codeplex.com/PHPWord)
|
* @copyright Copyright (c) 2009 - 2011 PHPWord (http://www.codeplex.com/PHPWord)
|
||||||
*/
|
*/
|
||||||
class PHPWord_Template {
|
class PHPWord_Template
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ZipArchive
|
* ZipArchive
|
||||||
|
|
@ -62,9 +63,10 @@ class PHPWord_Template {
|
||||||
*
|
*
|
||||||
* @param string $strFilename
|
* @param string $strFilename
|
||||||
*/
|
*/
|
||||||
public function __construct($strFilename) {
|
public function __construct($strFilename)
|
||||||
|
{
|
||||||
$path = dirname($strFilename);
|
$path = dirname($strFilename);
|
||||||
$this->_tempFileName = $path.DIRECTORY_SEPARATOR.time().'.docx';
|
$this->_tempFileName = $path . DIRECTORY_SEPARATOR . time() . '.docx';
|
||||||
|
|
||||||
copy($strFilename, $this->_tempFileName); // Copy the source File to the temp File
|
copy($strFilename, $this->_tempFileName); // Copy the source File to the temp File
|
||||||
|
|
||||||
|
|
@ -80,17 +82,19 @@ class PHPWord_Template {
|
||||||
* @param mixed $search
|
* @param mixed $search
|
||||||
* @param mixed $replace
|
* @param mixed $replace
|
||||||
*/
|
*/
|
||||||
public function setValue($search, $replace) {
|
public function setValue($search, $replace)
|
||||||
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 (!is_array($replace)) {
|
||||||
$replace = utf8_encode($replace);
|
$replace = utf8_encode($replace);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->_documentXML = str_replace($search, $replace, $this->_documentXML);
|
$this->_documentXML = str_replace($search, $replace, $this->_documentXML);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns array of all variables in template
|
* Returns array of all variables in template
|
||||||
*/
|
*/
|
||||||
|
|
@ -99,24 +103,25 @@ class PHPWord_Template {
|
||||||
preg_match_all('/\$\{(.*?)}/i', $this->_documentXML, $matches);
|
preg_match_all('/\$\{(.*?)}/i', $this->_documentXML, $matches);
|
||||||
return $matches[1];
|
return $matches[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Save Template
|
* Save Template
|
||||||
*
|
*
|
||||||
* @param string $strFilename
|
* @param string $strFilename
|
||||||
*/
|
*/
|
||||||
public function save($strFilename) {
|
public function save($strFilename)
|
||||||
if(file_exists($strFilename)) {
|
{
|
||||||
|
if (file_exists($strFilename)) {
|
||||||
unlink($strFilename);
|
unlink($strFilename);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->_objZip->addFromString('word/document.xml', $this->_documentXML);
|
$this->_objZip->addFromString('word/document.xml', $this->_documentXML);
|
||||||
|
|
||||||
// Close zip file
|
// Close zip file
|
||||||
if($this->_objZip->close() === false) {
|
if ($this->_objZip->close() === false) {
|
||||||
throw new Exception('Could not close zip file.');
|
throw new Exception('Could not close zip file.');
|
||||||
}
|
}
|
||||||
|
|
||||||
rename($this->_tempFileName, $strFilename);
|
rename($this->_tempFileName, $strFilename);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -28,12 +28,11 @@
|
||||||
|
|
||||||
interface PHPWord_Writer_IWriter
|
interface PHPWord_Writer_IWriter
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Save PHPWord to file
|
* Save PHPWord to file
|
||||||
*
|
*
|
||||||
* @param string $pFileName
|
* @param string $pFileName
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function save($pFilename = null);
|
public function save($pFilename = null);
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -27,254 +27,261 @@
|
||||||
|
|
||||||
class PHPWord_Writer_ODText implements PHPWord_Writer_IWriter
|
class PHPWord_Writer_ODText implements PHPWord_Writer_IWriter
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Private PHPWord
|
* Private PHPWord
|
||||||
*
|
*
|
||||||
* @var PHPWord
|
* @var PHPWord
|
||||||
*/
|
*/
|
||||||
private $_document;
|
private $_document;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Private writer parts
|
* Private writer parts
|
||||||
*
|
*
|
||||||
* @var PHPWord_Writer_ODText_WriterPart[]
|
* @var PHPWord_Writer_ODText_WriterPart[]
|
||||||
*/
|
*/
|
||||||
private $_writerParts;
|
private $_writerParts;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Private unique PHPWord_Worksheet_BaseDrawing HashTable
|
* Private unique PHPWord_Worksheet_BaseDrawing HashTable
|
||||||
*
|
*
|
||||||
* @var PHPWord_HashTable
|
* @var PHPWord_HashTable
|
||||||
*/
|
*/
|
||||||
private $_drawingHashTable;
|
private $_drawingHashTable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Use disk caching where possible?
|
* Use disk caching where possible?
|
||||||
*
|
*
|
||||||
* @var boolean
|
* @var boolean
|
||||||
*/
|
*/
|
||||||
private $_useDiskCaching = false;
|
private $_useDiskCaching = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Disk caching directory
|
* Disk caching directory
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $_diskCachingDirectory;
|
private $_diskCachingDirectory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new PHPWord_Writer_ODText
|
* Create a new PHPWord_Writer_ODText
|
||||||
*
|
*
|
||||||
* @param PHPWord $pPHPWord
|
* @param PHPWord $pPHPWord
|
||||||
*/
|
*/
|
||||||
public function __construct(PHPWord $pPHPWord = null)
|
public function __construct(PHPWord $pPHPWord = null)
|
||||||
{
|
{
|
||||||
// Assign PHPWord
|
// Assign PHPWord
|
||||||
$this->setPHPWord($pPHPWord);
|
$this->setPHPWord($pPHPWord);
|
||||||
|
|
||||||
// Set up disk caching location
|
// Set up disk caching location
|
||||||
$this->_diskCachingDirectory = './';
|
$this->_diskCachingDirectory = './';
|
||||||
|
|
||||||
// Initialise writer parts
|
// Initialise writer parts
|
||||||
$this->_writerParts['content'] = new PHPWord_Writer_ODText_Content();
|
$this->_writerParts['content'] = new PHPWord_Writer_ODText_Content();
|
||||||
$this->_writerParts['manifest'] = new PHPWord_Writer_ODText_Manifest();
|
$this->_writerParts['manifest'] = new PHPWord_Writer_ODText_Manifest();
|
||||||
$this->_writerParts['meta'] = new PHPWord_Writer_ODText_Meta();
|
$this->_writerParts['meta'] = new PHPWord_Writer_ODText_Meta();
|
||||||
$this->_writerParts['mimetype'] = new PHPWord_Writer_ODText_Mimetype();
|
$this->_writerParts['mimetype'] = new PHPWord_Writer_ODText_Mimetype();
|
||||||
$this->_writerParts['styles'] = new PHPWord_Writer_ODText_Styles();
|
$this->_writerParts['styles'] = new PHPWord_Writer_ODText_Styles();
|
||||||
|
|
||||||
|
|
||||||
// Assign parent IWriter
|
// Assign parent IWriter
|
||||||
foreach ($this->_writerParts as $writer) {
|
foreach ($this->_writerParts as $writer) {
|
||||||
$writer->setParentWriter($this);
|
$writer->setParentWriter($this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set HashTable variables
|
// Set HashTable variables
|
||||||
$this->_drawingHashTable = new PHPWord_HashTable();
|
$this->_drawingHashTable = new PHPWord_HashTable();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Save PHPWord to file
|
* Save PHPWord to file
|
||||||
*
|
*
|
||||||
* @param string $pFileName
|
* @param string $pFileName
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function save($pFilename = null)
|
public function save($pFilename = null)
|
||||||
{
|
{
|
||||||
if (!is_null($this->_document)) {
|
if (!is_null($this->_document)) {
|
||||||
// If $pFilename is php://output or php://stdout, make it a temporary file...
|
// If $pFilename is php://output or php://stdout, make it a temporary file...
|
||||||
$originalFilename = $pFilename;
|
$originalFilename = $pFilename;
|
||||||
if (strtolower($pFilename) == 'php://output' || strtolower($pFilename) == 'php://stdout') {
|
if (strtolower($pFilename) == 'php://output' || strtolower($pFilename) == 'php://stdout') {
|
||||||
$pFilename = @tempnam('./', 'phppttmp');
|
$pFilename = @tempnam('./', 'phppttmp');
|
||||||
if ($pFilename == '') {
|
if ($pFilename == '') {
|
||||||
$pFilename = $originalFilename;
|
$pFilename = $originalFilename;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create drawing dictionary
|
// Create drawing dictionary
|
||||||
|
|
||||||
// Create new ZIP file and open it for writing
|
// Create new ZIP file and open it for writing
|
||||||
$objZip = new ZipArchive();
|
$objZip = new ZipArchive();
|
||||||
|
|
||||||
// Try opening the ZIP file
|
// Try opening the ZIP file
|
||||||
if ($objZip->open($pFilename, ZIPARCHIVE::OVERWRITE) !== true) {
|
if ($objZip->open($pFilename, ZIPARCHIVE::OVERWRITE) !== true) {
|
||||||
if ($objZip->open($pFilename, ZIPARCHIVE::CREATE) !== true) {
|
if ($objZip->open($pFilename, ZIPARCHIVE::CREATE) !== true) {
|
||||||
throw new Exception("Could not open " . $pFilename . " for writing.");
|
throw new Exception("Could not open " . $pFilename . " for writing.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add mimetype to ZIP file
|
// Add mimetype to ZIP file
|
||||||
//@todo Not in ZIPARCHIVE::CM_STORE mode
|
//@todo Not in ZIPARCHIVE::CM_STORE mode
|
||||||
$objZip->addFromString('mimetype', $this->getWriterPart('mimetype')->writeMimetype($this->_document));
|
$objZip->addFromString('mimetype', $this->getWriterPart('mimetype')->writeMimetype($this->_document));
|
||||||
|
|
||||||
// Add content.xml to ZIP file
|
// Add content.xml to ZIP file
|
||||||
$objZip->addFromString('content.xml', $this->getWriterPart('content')->writeContent($this->_document));
|
$objZip->addFromString('content.xml', $this->getWriterPart('content')->writeContent($this->_document));
|
||||||
|
|
||||||
// Add meta.xml to ZIP file
|
// Add meta.xml to ZIP file
|
||||||
$objZip->addFromString('meta.xml', $this->getWriterPart('meta')->writeMeta($this->_document));
|
$objZip->addFromString('meta.xml', $this->getWriterPart('meta')->writeMeta($this->_document));
|
||||||
|
|
||||||
// Add styles.xml to ZIP file
|
// Add styles.xml to ZIP file
|
||||||
$objZip->addFromString('styles.xml', $this->getWriterPart('styles')->writeStyles($this->_document));
|
$objZip->addFromString('styles.xml', $this->getWriterPart('styles')->writeStyles($this->_document));
|
||||||
|
|
||||||
// Add META-INF/manifest.xml
|
// Add META-INF/manifest.xml
|
||||||
$objZip->addFromString('META-INF/manifest.xml', $this->getWriterPart('manifest')->writeManifest($this->_document));
|
$objZip->addFromString('META-INF/manifest.xml', $this->getWriterPart('manifest')->writeManifest($this->_document));
|
||||||
|
|
||||||
// Add media
|
// Add media
|
||||||
for ($i = 0; $i < $this->getDrawingHashTable()->count(); ++$i) {
|
for ($i = 0; $i < $this->getDrawingHashTable()->count(); ++$i) {
|
||||||
if ($this->getDrawingHashTable()->getByIndex($i) instanceof PHPWord_Shape_Drawing) {
|
if ($this->getDrawingHashTable()->getByIndex($i) instanceof PHPWord_Shape_Drawing) {
|
||||||
$imageContents = null;
|
$imageContents = null;
|
||||||
$imagePath = $this->getDrawingHashTable()->getByIndex($i)->getPath();
|
$imagePath = $this->getDrawingHashTable()->getByIndex($i)->getPath();
|
||||||
|
|
||||||
if (strpos($imagePath, 'zip://') !== false) {
|
if (strpos($imagePath, 'zip://') !== false) {
|
||||||
$imagePath = substr($imagePath, 6);
|
$imagePath = substr($imagePath, 6);
|
||||||
$imagePathSplitted = explode('#', $imagePath);
|
$imagePathSplitted = explode('#', $imagePath);
|
||||||
|
|
||||||
$imageZip = new ZipArchive();
|
$imageZip = new ZipArchive();
|
||||||
$imageZip->open($imagePathSplitted[0]);
|
$imageZip->open($imagePathSplitted[0]);
|
||||||
$imageContents = $imageZip->getFromName($imagePathSplitted[1]);
|
$imageContents = $imageZip->getFromName($imagePathSplitted[1]);
|
||||||
$imageZip->close();
|
$imageZip->close();
|
||||||
unset($imageZip);
|
unset($imageZip);
|
||||||
} else {
|
} else {
|
||||||
$imageContents = file_get_contents($imagePath);
|
$imageContents = file_get_contents($imagePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
$objZip->addFromString('Pictures/' . str_replace(' ', '_', $this->getDrawingHashTable()->getByIndex($i)->getIndexedFilename()), $imageContents);
|
$objZip->addFromString('Pictures/' . str_replace(' ', '_', $this->getDrawingHashTable()->getByIndex($i)->getIndexedFilename()), $imageContents);
|
||||||
} else if ($this->getDrawingHashTable()->getByIndex($i) instanceof PHPWord_Shape_MemoryDrawing) {
|
} else if ($this->getDrawingHashTable()->getByIndex($i) instanceof PHPWord_Shape_MemoryDrawing) {
|
||||||
ob_start();
|
ob_start();
|
||||||
call_user_func(
|
call_user_func(
|
||||||
$this->getDrawingHashTable()->getByIndex($i)->getRenderingFunction(),
|
$this->getDrawingHashTable()->getByIndex($i)->getRenderingFunction(),
|
||||||
$this->getDrawingHashTable()->getByIndex($i)->getImageResource()
|
$this->getDrawingHashTable()->getByIndex($i)->getImageResource()
|
||||||
);
|
);
|
||||||
$imageContents = ob_get_contents();
|
$imageContents = ob_get_contents();
|
||||||
ob_end_clean();
|
ob_end_clean();
|
||||||
|
|
||||||
$objZip->addFromString('Pictures/' . str_replace(' ', '_', $this->getDrawingHashTable()->getByIndex($i)->getIndexedFilename()), $imageContents);
|
$objZip->addFromString('Pictures/' . str_replace(' ', '_', $this->getDrawingHashTable()->getByIndex($i)->getIndexedFilename()), $imageContents);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Close file
|
// Close file
|
||||||
if ($objZip->close() === false) {
|
if ($objZip->close() === false) {
|
||||||
throw new Exception("Could not close zip file $pFilename.");
|
throw new Exception("Could not close zip file $pFilename.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// If a temporary file was used, copy it to the correct file stream
|
// If a temporary file was used, copy it to the correct file stream
|
||||||
if ($originalFilename != $pFilename) {
|
if ($originalFilename != $pFilename) {
|
||||||
if (copy($pFilename, $originalFilename) === false) {
|
if (copy($pFilename, $originalFilename) === false) {
|
||||||
throw new Exception("Could not copy temporary zip file $pFilename to $originalFilename.");
|
throw new Exception("Could not copy temporary zip file $pFilename to $originalFilename.");
|
||||||
}
|
}
|
||||||
@unlink($pFilename);
|
@unlink($pFilename);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
throw new Exception("PHPWord object unassigned.");
|
throw new Exception("PHPWord object unassigned.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get PHPWord object
|
* Get PHPWord object
|
||||||
*
|
*
|
||||||
* @return PHPWord
|
* @return PHPWord
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function getPHPWord() {
|
public function getPHPWord()
|
||||||
if (!is_null($this->_document)) {
|
{
|
||||||
return $this->_document;
|
if (!is_null($this->_document)) {
|
||||||
} else {
|
return $this->_document;
|
||||||
throw new Exception("No PHPWord assigned.");
|
} else {
|
||||||
}
|
throw new Exception("No PHPWord assigned.");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get PHPWord object
|
* Get PHPWord object
|
||||||
*
|
*
|
||||||
* @param PHPWord $pPHPWord PHPWord object
|
* @param PHPWord $pPHPWord PHPWord object
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
* @return PHPWord_Writer_PowerPoint2007
|
* @return PHPWord_Writer_PowerPoint2007
|
||||||
*/
|
*/
|
||||||
public function setPHPWord(PHPWord $pPHPWord = null) {
|
public function setPHPWord(PHPWord $pPHPWord = null)
|
||||||
$this->_document = $pPHPWord;
|
{
|
||||||
return $this;
|
$this->_document = $pPHPWord;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get PHPWord_Worksheet_BaseDrawing HashTable
|
* Get PHPWord_Worksheet_BaseDrawing HashTable
|
||||||
*
|
*
|
||||||
* @return PHPWord_HashTable
|
* @return PHPWord_HashTable
|
||||||
*/
|
*/
|
||||||
public function getDrawingHashTable() {
|
public function getDrawingHashTable()
|
||||||
return $this->_drawingHashTable;
|
{
|
||||||
}
|
return $this->_drawingHashTable;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get writer part
|
* Get writer part
|
||||||
*
|
*
|
||||||
* @param string $pPartName Writer part name
|
* @param string $pPartName Writer part name
|
||||||
* @return PHPWord_Writer_ODText_WriterPart
|
* @return PHPWord_Writer_ODText_WriterPart
|
||||||
*/
|
*/
|
||||||
function getWriterPart($pPartName = '') {
|
function getWriterPart($pPartName = '')
|
||||||
if ($pPartName != '' && isset($this->_writerParts[strtolower($pPartName)])) {
|
{
|
||||||
return $this->_writerParts[strtolower($pPartName)];
|
if ($pPartName != '' && isset($this->_writerParts[strtolower($pPartName)])) {
|
||||||
} else {
|
return $this->_writerParts[strtolower($pPartName)];
|
||||||
return null;
|
} else {
|
||||||
}
|
return null;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get use disk caching where possible?
|
* Get use disk caching where possible?
|
||||||
*
|
*
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public function getUseDiskCaching() {
|
public function getUseDiskCaching()
|
||||||
return $this->_useDiskCaching;
|
{
|
||||||
}
|
return $this->_useDiskCaching;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set use disk caching where possible?
|
* Set use disk caching where possible?
|
||||||
*
|
*
|
||||||
* @param boolean $pValue
|
* @param boolean $pValue
|
||||||
* @param string $pDirectory Disk caching directory
|
* @param string $pDirectory Disk caching directory
|
||||||
* @throws Exception Exception when directory does not exist
|
* @throws Exception Exception when directory does not exist
|
||||||
* @return PHPWord_Writer_PowerPoint2007
|
* @return PHPWord_Writer_PowerPoint2007
|
||||||
*/
|
*/
|
||||||
public function setUseDiskCaching($pValue = false, $pDirectory = null) {
|
public function setUseDiskCaching($pValue = false, $pDirectory = null)
|
||||||
$this->_useDiskCaching = $pValue;
|
{
|
||||||
|
$this->_useDiskCaching = $pValue;
|
||||||
|
|
||||||
if (!is_null($pDirectory)) {
|
if (!is_null($pDirectory)) {
|
||||||
if (is_dir($pDirectory)) {
|
if (is_dir($pDirectory)) {
|
||||||
$this->_diskCachingDirectory = $pDirectory;
|
$this->_diskCachingDirectory = $pDirectory;
|
||||||
} else {
|
} else {
|
||||||
throw new Exception("Directory does not exist: $pDirectory");
|
throw new Exception("Directory does not exist: $pDirectory");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get disk caching directory
|
* Get disk caching directory
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getDiskCachingDirectory() {
|
public function getDiskCachingDirectory()
|
||||||
return $this->_diskCachingDirectory;
|
{
|
||||||
}
|
return $this->_diskCachingDirectory;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -35,234 +35,234 @@
|
||||||
*/
|
*/
|
||||||
class PHPWord_Writer_ODText_Content extends PHPWord_Writer_ODText_WriterPart
|
class PHPWord_Writer_ODText_Content extends PHPWord_Writer_ODText_WriterPart
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Write content file to XML format
|
* Write content file to XML format
|
||||||
*
|
*
|
||||||
* @param PHPWord $pPHPWord
|
* @param PHPWord $pPHPWord
|
||||||
* @return string XML Output
|
* @return string XML Output
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function writeContent(PHPWord $pPHPWord = null)
|
public function writeContent(PHPWord $pPHPWord = null)
|
||||||
{
|
{
|
||||||
// Create XML writer
|
// Create XML writer
|
||||||
$objWriter = null;
|
$objWriter = null;
|
||||||
if ($this->getParentWriter()->getUseDiskCaching()) {
|
if ($this->getParentWriter()->getUseDiskCaching()) {
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
||||||
} else {
|
} else {
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
// XML header
|
// XML header
|
||||||
$objWriter->startDocument('1.0','UTF-8');
|
$objWriter->startDocument('1.0', 'UTF-8');
|
||||||
|
|
||||||
// office:document-content
|
// office:document-content
|
||||||
$objWriter->startElement('office:document-content');
|
$objWriter->startElement('office:document-content');
|
||||||
$objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
|
$objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:style', 'urn:oasis:names:tc:opendocument:xmlns:style:1.0');
|
$objWriter->writeAttribute('xmlns:style', 'urn:oasis:names:tc:opendocument:xmlns:style:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:text', 'urn:oasis:names:tc:opendocument:xmlns:text:1.0');
|
$objWriter->writeAttribute('xmlns:text', 'urn:oasis:names:tc:opendocument:xmlns:text:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:table', 'urn:oasis:names:tc:opendocument:xmlns:table:1.0');
|
$objWriter->writeAttribute('xmlns:table', 'urn:oasis:names:tc:opendocument:xmlns:table:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:draw', 'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0');
|
$objWriter->writeAttribute('xmlns:draw', 'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:fo', 'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0');
|
$objWriter->writeAttribute('xmlns:fo', 'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
|
$objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
|
||||||
$objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
|
$objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
|
||||||
$objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0');
|
$objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:number', 'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0');
|
$objWriter->writeAttribute('xmlns:number', 'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:svg', 'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0');
|
$objWriter->writeAttribute('xmlns:svg', 'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:chart', 'urn:oasis:names:tc:opendocument:xmlns:chart:1.0');
|
$objWriter->writeAttribute('xmlns:chart', 'urn:oasis:names:tc:opendocument:xmlns:chart:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:dr3d', 'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0');
|
$objWriter->writeAttribute('xmlns:dr3d', 'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:math', 'http://www.w3.org/1998/Math/MathML');
|
$objWriter->writeAttribute('xmlns:math', 'http://www.w3.org/1998/Math/MathML');
|
||||||
$objWriter->writeAttribute('xmlns:form', 'urn:oasis:names:tc:opendocument:xmlns:form:1.0');
|
$objWriter->writeAttribute('xmlns:form', 'urn:oasis:names:tc:opendocument:xmlns:form:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:script', 'urn:oasis:names:tc:opendocument:xmlns:script:1.0');
|
$objWriter->writeAttribute('xmlns:script', 'urn:oasis:names:tc:opendocument:xmlns:script:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
|
$objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
|
||||||
$objWriter->writeAttribute('xmlns:ooow', 'http://openoffice.org/2004/writer');
|
$objWriter->writeAttribute('xmlns:ooow', 'http://openoffice.org/2004/writer');
|
||||||
$objWriter->writeAttribute('xmlns:oooc', 'http://openoffice.org/2004/calc');
|
$objWriter->writeAttribute('xmlns:oooc', 'http://openoffice.org/2004/calc');
|
||||||
$objWriter->writeAttribute('xmlns:dom', 'http://www.w3.org/2001/xml-events');
|
$objWriter->writeAttribute('xmlns:dom', 'http://www.w3.org/2001/xml-events');
|
||||||
$objWriter->writeAttribute('xmlns:xforms', 'http://www.w3.org/2002/xforms');
|
$objWriter->writeAttribute('xmlns:xforms', 'http://www.w3.org/2002/xforms');
|
||||||
$objWriter->writeAttribute('xmlns:xsd', 'http://www.w3.org/2001/XMLSchema');
|
$objWriter->writeAttribute('xmlns:xsd', 'http://www.w3.org/2001/XMLSchema');
|
||||||
$objWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
|
$objWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
|
||||||
$objWriter->writeAttribute('xmlns:rpt', 'http://openoffice.org/2005/report');
|
$objWriter->writeAttribute('xmlns:rpt', 'http://openoffice.org/2005/report');
|
||||||
$objWriter->writeAttribute('xmlns:of', 'urn:oasis:names:tc:opendocument:xmlns:of:1.2');
|
$objWriter->writeAttribute('xmlns:of', 'urn:oasis:names:tc:opendocument:xmlns:of:1.2');
|
||||||
$objWriter->writeAttribute('xmlns:xhtml', 'http://www.w3.org/1999/xhtml');
|
$objWriter->writeAttribute('xmlns:xhtml', 'http://www.w3.org/1999/xhtml');
|
||||||
$objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#');
|
$objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#');
|
||||||
$objWriter->writeAttribute('xmlns:tableooo', 'http://openoffice.org/2009/table');
|
$objWriter->writeAttribute('xmlns:tableooo', 'http://openoffice.org/2009/table');
|
||||||
$objWriter->writeAttribute('xmlns:field', 'urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0');
|
$objWriter->writeAttribute('xmlns:field', 'urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:formx', 'urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0');
|
$objWriter->writeAttribute('xmlns:formx', 'urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:css3t', 'http://www.w3.org/TR/css3-text/');
|
$objWriter->writeAttribute('xmlns:css3t', 'http://www.w3.org/TR/css3-text/');
|
||||||
$objWriter->writeAttribute('office:version', '1.2');
|
$objWriter->writeAttribute('office:version', '1.2');
|
||||||
|
|
||||||
// We firstly search all fonts used
|
// We firstly search all fonts used
|
||||||
$_sections = $pPHPWord->getSections();
|
$_sections = $pPHPWord->getSections();
|
||||||
$countSections = count($_sections);
|
$countSections = count($_sections);
|
||||||
if($countSections > 0) {
|
if ($countSections > 0) {
|
||||||
$pSection = 0;
|
$pSection = 0;
|
||||||
$numPStyles = 0;
|
$numPStyles = 0;
|
||||||
$numFStyles = 0;
|
$numFStyles = 0;
|
||||||
|
|
||||||
foreach($_sections as $section) {
|
foreach ($_sections as $section) {
|
||||||
$pSection++;
|
$pSection++;
|
||||||
$_elements = $section->getElements();
|
$_elements = $section->getElements();
|
||||||
|
|
||||||
foreach($_elements as $element) {
|
foreach ($_elements as $element) {
|
||||||
if($element instanceof PHPWord_Section_Text) {
|
if ($element instanceof PHPWord_Section_Text) {
|
||||||
$fStyle = $element->getFontStyle();
|
$fStyle = $element->getFontStyle();
|
||||||
$pStyle = $element->getParagraphStyle();
|
$pStyle = $element->getParagraphStyle();
|
||||||
|
|
||||||
if($fStyle instanceof PHPWord_Style_Font){
|
if ($fStyle instanceof PHPWord_Style_Font) {
|
||||||
$numFStyles++;
|
$numFStyles++;
|
||||||
|
|
||||||
$arrStyle = array(
|
$arrStyle = array(
|
||||||
'color'=>$fStyle->getColor(),
|
'color' => $fStyle->getColor(),
|
||||||
'name' =>$fStyle->getName()
|
'name' => $fStyle->getName()
|
||||||
);
|
);
|
||||||
$pPHPWord->addFontStyle('T'.$numFStyles, $arrStyle);
|
$pPHPWord->addFontStyle('T' . $numFStyles, $arrStyle);
|
||||||
$element->setFontStyle('T'.$numFStyles);
|
$element->setFontStyle('T' . $numFStyles);
|
||||||
}
|
} elseif ($pStyle instanceof PHPWord_Style_Paragraph) {
|
||||||
elseif($pStyle instanceof PHPWord_Style_Paragraph){
|
$numPStyles++;
|
||||||
$numPStyles++;
|
|
||||||
|
|
||||||
$pPHPWord->addParagraphStyle('P'.$numPStyles, array());
|
$pPHPWord->addParagraphStyle('P' . $numPStyles, array());
|
||||||
$element->setParagraph('P'.$numPStyles);
|
$element->setParagraph('P' . $numPStyles);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// office:font-face-decls
|
// office:font-face-decls
|
||||||
$objWriter->startElement('office:font-face-decls');
|
$objWriter->startElement('office:font-face-decls');
|
||||||
$arrFonts = array();
|
$arrFonts = array();
|
||||||
|
|
||||||
$styles = PHPWord_Style::getStyles();
|
$styles = PHPWord_Style::getStyles();
|
||||||
$numFonts = 0;
|
$numFonts = 0;
|
||||||
if(count($styles) > 0) {
|
if (count($styles) > 0) {
|
||||||
foreach($styles as $styleName => $style) {
|
foreach ($styles as $styleName => $style) {
|
||||||
// PHPWord_Style_Font
|
// PHPWord_Style_Font
|
||||||
if($style instanceof PHPWord_Style_Font) {
|
if ($style instanceof PHPWord_Style_Font) {
|
||||||
$numFonts++;
|
$numFonts++;
|
||||||
$name = $style->getName();
|
$name = $style->getName();
|
||||||
if(!in_array($name, $arrFonts)){
|
if (!in_array($name, $arrFonts)) {
|
||||||
$arrFonts[] = $name;
|
$arrFonts[] = $name;
|
||||||
|
|
||||||
// style:font-face
|
// style:font-face
|
||||||
$objWriter->startElement('style:font-face');
|
$objWriter->startElement('style:font-face');
|
||||||
$objWriter->writeAttribute('style:name', $name);
|
$objWriter->writeAttribute('style:name', $name);
|
||||||
$objWriter->writeAttribute('svg:font-family', $name);
|
$objWriter->writeAttribute('svg:font-family', $name);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!in_array('Arial', $arrFonts)){
|
if (!in_array('Arial', $arrFonts)) {
|
||||||
$objWriter->startElement('style:font-face');
|
$objWriter->startElement('style:font-face');
|
||||||
$objWriter->writeAttribute('style:name', 'Arial');
|
$objWriter->writeAttribute('style:name', 'Arial');
|
||||||
$objWriter->writeAttribute('svg:font-family', 'Arial');
|
$objWriter->writeAttribute('svg:font-family', 'Arial');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->startElement('office:automatic-styles');
|
$objWriter->startElement('office:automatic-styles');
|
||||||
$styles = PHPWord_Style::getStyles();
|
$styles = PHPWord_Style::getStyles();
|
||||||
$numPStyles = 0;
|
$numPStyles = 0;
|
||||||
if(count($styles) > 0) {
|
if (count($styles) > 0) {
|
||||||
foreach($styles as $styleName => $style) {
|
foreach ($styles as $styleName => $style) {
|
||||||
if(preg_match('#^T[0-9]+$#', $styleName) != 0
|
if (preg_match('#^T[0-9]+$#', $styleName) != 0
|
||||||
|| preg_match('#^P[0-9]+$#', $styleName) != 0){
|
|| preg_match('#^P[0-9]+$#', $styleName) != 0
|
||||||
// PHPWord_Style_Font
|
) {
|
||||||
if($style instanceof PHPWord_Style_Font) {
|
// PHPWord_Style_Font
|
||||||
$objWriter->startElement('style:style');
|
if ($style instanceof PHPWord_Style_Font) {
|
||||||
$objWriter->writeAttribute('style:name', $styleName);
|
$objWriter->startElement('style:style');
|
||||||
$objWriter->writeAttribute('style:family', 'text');
|
$objWriter->writeAttribute('style:name', $styleName);
|
||||||
// style:text-properties
|
$objWriter->writeAttribute('style:family', 'text');
|
||||||
$objWriter->startElement('style:text-properties');
|
// style:text-properties
|
||||||
$objWriter->writeAttribute('fo:color', '#'.$style->getColor());
|
$objWriter->startElement('style:text-properties');
|
||||||
$objWriter->writeAttribute('style:font-name', $style->getName());
|
$objWriter->writeAttribute('fo:color', '#' . $style->getColor());
|
||||||
$objWriter->writeAttribute('style:font-name-complex', $style->getName());
|
$objWriter->writeAttribute('style:font-name', $style->getName());
|
||||||
$objWriter->endElement();
|
$objWriter->writeAttribute('style:font-name-complex', $style->getName());
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
$objWriter->endElement();
|
||||||
if($style instanceof PHPWord_Style_Paragraph){
|
}
|
||||||
$numPStyles++;
|
if ($style instanceof PHPWord_Style_Paragraph) {
|
||||||
// style:style
|
$numPStyles++;
|
||||||
$objWriter->startElement('style:style');
|
// style:style
|
||||||
$objWriter->writeAttribute('style:name', $styleName);
|
$objWriter->startElement('style:style');
|
||||||
$objWriter->writeAttribute('style:family', 'paragraph');
|
$objWriter->writeAttribute('style:name', $styleName);
|
||||||
$objWriter->writeAttribute('style:parent-style-name', 'Standard');
|
$objWriter->writeAttribute('style:family', 'paragraph');
|
||||||
$objWriter->writeAttribute('style:master-page-name', 'Standard');
|
$objWriter->writeAttribute('style:parent-style-name', 'Standard');
|
||||||
// style:paragraph-properties
|
$objWriter->writeAttribute('style:master-page-name', 'Standard');
|
||||||
$objWriter->startElement('style:paragraph-properties');
|
// style:paragraph-properties
|
||||||
$objWriter->writeAttribute('style:page-number', 'auto');
|
$objWriter->startElement('style:paragraph-properties');
|
||||||
$objWriter->endElement();
|
$objWriter->writeAttribute('style:page-number', 'auto');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if($numPStyles == 0){
|
if ($numPStyles == 0) {
|
||||||
// style:style
|
// style:style
|
||||||
$objWriter->startElement('style:style');
|
$objWriter->startElement('style:style');
|
||||||
$objWriter->writeAttribute('style:name', 'P1');
|
$objWriter->writeAttribute('style:name', 'P1');
|
||||||
$objWriter->writeAttribute('style:family', 'paragraph');
|
$objWriter->writeAttribute('style:family', 'paragraph');
|
||||||
$objWriter->writeAttribute('style:parent-style-name', 'Standard');
|
$objWriter->writeAttribute('style:parent-style-name', 'Standard');
|
||||||
$objWriter->writeAttribute('style:master-page-name', 'Standard');
|
$objWriter->writeAttribute('style:master-page-name', 'Standard');
|
||||||
// style:paragraph-properties
|
// style:paragraph-properties
|
||||||
$objWriter->startElement('style:paragraph-properties');
|
$objWriter->startElement('style:paragraph-properties');
|
||||||
$objWriter->writeAttribute('style:page-number', 'auto');
|
$objWriter->writeAttribute('style:page-number', 'auto');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// office:body
|
// office:body
|
||||||
$objWriter->startElement('office:body');
|
$objWriter->startElement('office:body');
|
||||||
// office:text
|
// office:text
|
||||||
$objWriter->startElement('office:text');
|
$objWriter->startElement('office:text');
|
||||||
// text:sequence-decls
|
// text:sequence-decls
|
||||||
$objWriter->startElement('text:sequence-decls');
|
$objWriter->startElement('text:sequence-decls');
|
||||||
// text:sequence-decl
|
// text:sequence-decl
|
||||||
$objWriter->startElement('text:sequence-decl');
|
$objWriter->startElement('text:sequence-decl');
|
||||||
$objWriter->writeAttribute('text:display-outline-level', 0);
|
$objWriter->writeAttribute('text:display-outline-level', 0);
|
||||||
$objWriter->writeAttribute('text:name', 'Illustration');
|
$objWriter->writeAttribute('text:name', 'Illustration');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
// text:sequence-decl
|
// text:sequence-decl
|
||||||
$objWriter->startElement('text:sequence-decl');
|
$objWriter->startElement('text:sequence-decl');
|
||||||
$objWriter->writeAttribute('text:display-outline-level', 0);
|
$objWriter->writeAttribute('text:display-outline-level', 0);
|
||||||
$objWriter->writeAttribute('text:name', 'Table');
|
$objWriter->writeAttribute('text:name', 'Table');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
// text:sequence-decl
|
// text:sequence-decl
|
||||||
$objWriter->startElement('text:sequence-decl');
|
$objWriter->startElement('text:sequence-decl');
|
||||||
$objWriter->writeAttribute('text:display-outline-level', 0);
|
$objWriter->writeAttribute('text:display-outline-level', 0);
|
||||||
$objWriter->writeAttribute('text:name', 'Text');
|
$objWriter->writeAttribute('text:name', 'Text');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
// text:sequence-decl
|
// text:sequence-decl
|
||||||
$objWriter->startElement('text:sequence-decl');
|
$objWriter->startElement('text:sequence-decl');
|
||||||
$objWriter->writeAttribute('text:display-outline-level', 0);
|
$objWriter->writeAttribute('text:display-outline-level', 0);
|
||||||
$objWriter->writeAttribute('text:name', 'Drawing');
|
$objWriter->writeAttribute('text:name', 'Drawing');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$_sections = $pPHPWord->getSections();
|
$_sections = $pPHPWord->getSections();
|
||||||
$countSections = count($_sections);
|
$countSections = count($_sections);
|
||||||
$pSection = 0;
|
$pSection = 0;
|
||||||
|
|
||||||
if($countSections > 0) {
|
if ($countSections > 0) {
|
||||||
foreach($_sections as $section) {
|
foreach ($_sections as $section) {
|
||||||
$pSection++;
|
$pSection++;
|
||||||
|
|
||||||
$_elements = $section->getElements();
|
$_elements = $section->getElements();
|
||||||
|
|
||||||
foreach($_elements as $element) {
|
foreach ($_elements as $element) {
|
||||||
if($element instanceof PHPWord_Section_Text) {
|
if ($element instanceof PHPWord_Section_Text) {
|
||||||
$this->_writeText($objWriter, $element);
|
$this->_writeText($objWriter, $element);
|
||||||
}/* elseif($element instanceof PHPWord_Section_TextRun) {
|
} /* elseif($element instanceof PHPWord_Section_TextRun) {
|
||||||
$this->_writeTextRun($objWriter, $element);
|
$this->_writeTextRun($objWriter, $element);
|
||||||
} elseif($element instanceof PHPWord_Section_Link) {
|
} elseif($element instanceof PHPWord_Section_Link) {
|
||||||
$this->_writeLink($objWriter, $element);
|
$this->_writeLink($objWriter, $element);
|
||||||
} elseif($element instanceof PHPWord_Section_Title) {
|
} elseif($element instanceof PHPWord_Section_Title) {
|
||||||
$this->_writeTitle($objWriter, $element);
|
$this->_writeTitle($objWriter, $element);
|
||||||
}*/ elseif($element instanceof PHPWord_Section_TextBreak) {
|
}*/ elseif ($element instanceof PHPWord_Section_TextBreak) {
|
||||||
$this->_writeTextBreak($objWriter);
|
$this->_writeTextBreak($objWriter);
|
||||||
}/* elseif($element instanceof PHPWord_Section_PageBreak) {
|
} /* elseif($element instanceof PHPWord_Section_PageBreak) {
|
||||||
$this->_writePageBreak($objWriter);
|
$this->_writePageBreak($objWriter);
|
||||||
} elseif($element instanceof PHPWord_Section_Table) {
|
} elseif($element instanceof PHPWord_Section_Table) {
|
||||||
$this->_writeTable($objWriter, $element);
|
$this->_writeTable($objWriter, $element);
|
||||||
|
|
@ -276,70 +276,71 @@ class PHPWord_Writer_ODText_Content extends PHPWord_Writer_ODText_WriterPart
|
||||||
} elseif($element instanceof PHPWord_TOC) {
|
} elseif($element instanceof PHPWord_TOC) {
|
||||||
$this->_writeTOC($objWriter);
|
$this->_writeTOC($objWriter);
|
||||||
}*/
|
}*/
|
||||||
else {
|
else {
|
||||||
print_r($element);
|
print_r($element);
|
||||||
echo '<br />';
|
echo '<br />';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if($pSection == $countSections) {
|
if ($pSection == $countSections) {
|
||||||
$this->_writeEndSection($objWriter, $section);
|
$this->_writeEndSection($objWriter, $section);
|
||||||
} else {
|
} else {
|
||||||
$this->_writeSection($objWriter, $section);
|
$this->_writeSection($objWriter, $section);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// Return
|
// Return
|
||||||
return $objWriter->getData();
|
return $objWriter->getData();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function _writeText(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Text $text, $withoutP = false) {
|
protected function _writeText(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Text $text, $withoutP = false)
|
||||||
$styleFont = $text->getFontStyle();
|
{
|
||||||
$styleParagraph = $text->getParagraphStyle();
|
$styleFont = $text->getFontStyle();
|
||||||
|
$styleParagraph = $text->getParagraphStyle();
|
||||||
|
|
||||||
$SfIsObject = ($styleFont instanceof PHPWord_Style_Font) ? true : false;
|
$SfIsObject = ($styleFont instanceof PHPWord_Style_Font) ? true : false;
|
||||||
|
|
||||||
if($SfIsObject) {
|
if ($SfIsObject) {
|
||||||
// Don't never be the case, because I browse all sections for cleaning all styles not declared
|
// Don't never be the case, because I browse all sections for cleaning all styles not declared
|
||||||
die('PHPWord : $SfIsObject wouldn\'t be an object');
|
die('PHPWord : $SfIsObject wouldn\'t be an object');
|
||||||
}
|
} else {
|
||||||
else {
|
// text:p
|
||||||
// text:p
|
$objWriter->startElement('text:p');
|
||||||
$objWriter->startElement('text:p');
|
if (empty($styleFont)) {
|
||||||
if(empty($styleFont)){
|
if (empty($styleParagraph)) {
|
||||||
if(empty($styleParagraph)){
|
$objWriter->writeAttribute('text:style-name', 'P1');
|
||||||
$objWriter->writeAttribute('text:style-name', 'P1');
|
} else {
|
||||||
}
|
$objWriter->writeAttribute('text:style-name', $text->getParagraphStyle());
|
||||||
else {
|
}
|
||||||
$objWriter->writeAttribute('text:style-name', $text->getParagraphStyle());
|
$objWriter->writeRaw($text->getText());
|
||||||
}
|
} else {
|
||||||
$objWriter->writeRaw($text->getText());
|
if (empty($styleParagraph)) {
|
||||||
}
|
$objWriter->writeAttribute('text:style-name', 'Standard');
|
||||||
else {
|
} else {
|
||||||
if(empty($styleParagraph)){
|
$objWriter->writeAttribute('text:style-name', $text->getParagraphStyle());
|
||||||
$objWriter->writeAttribute('text:style-name', 'Standard');
|
}
|
||||||
}
|
// text:span
|
||||||
else {
|
$objWriter->startElement('text:span');
|
||||||
$objWriter->writeAttribute('text:style-name', $text->getParagraphStyle());
|
$objWriter->writeAttribute('text:style-name', $styleFont);
|
||||||
}
|
$objWriter->writeRaw($text->getText());
|
||||||
// text:span
|
$objWriter->endElement();
|
||||||
$objWriter->startElement('text:span');
|
}
|
||||||
$objWriter->writeAttribute('text:style-name', $styleFont);
|
$objWriter->endElement();
|
||||||
$objWriter->writeRaw($text->getText());
|
}
|
||||||
$objWriter->endElement();
|
}
|
||||||
}
|
|
||||||
$objWriter->endElement();
|
protected function _writeTextBreak(PHPWord_Shared_XMLWriter $objWriter = null)
|
||||||
}
|
{
|
||||||
}
|
$objWriter->startElement('text:p');
|
||||||
protected function _writeTextBreak(PHPWord_Shared_XMLWriter $objWriter = null) {
|
$objWriter->writeAttribute('text:style-name', 'Standard');
|
||||||
$objWriter->startElement('text:p');
|
$objWriter->endElement();
|
||||||
$objWriter->writeAttribute('text:style-name', 'Standard');
|
}
|
||||||
$objWriter->endElement();
|
|
||||||
}
|
private function _writeEndSection(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section $section)
|
||||||
private function _writeEndSection(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section $section) {
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,97 +35,97 @@
|
||||||
*/
|
*/
|
||||||
class PHPWord_Writer_ODText_Manifest extends PHPWord_Writer_ODText_WriterPart
|
class PHPWord_Writer_ODText_Manifest extends PHPWord_Writer_ODText_WriterPart
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Write Manifest file to XML format
|
* Write Manifest file to XML format
|
||||||
*
|
*
|
||||||
* @param PHPWord $pPHPWord
|
* @param PHPWord $pPHPWord
|
||||||
* @return string XML Output
|
* @return string XML Output
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function writeManifest(PHPWord $pPHPWord = null)
|
public function writeManifest(PHPWord $pPHPWord = null)
|
||||||
{
|
{
|
||||||
// Create XML writer
|
// Create XML writer
|
||||||
$objWriter = null;
|
$objWriter = null;
|
||||||
if ($this->getParentWriter()->getUseDiskCaching()) {
|
if ($this->getParentWriter()->getUseDiskCaching()) {
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
||||||
} else {
|
} else {
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
// XML header
|
// XML header
|
||||||
$objWriter->startDocument('1.0','UTF-8');
|
$objWriter->startDocument('1.0', 'UTF-8');
|
||||||
|
|
||||||
// manifest:manifest
|
// manifest:manifest
|
||||||
$objWriter->startElement('manifest:manifest');
|
$objWriter->startElement('manifest:manifest');
|
||||||
$objWriter->writeAttribute('xmlns:manifest', 'urn:oasis:names:tc:opendocument:xmlns:manifest:1.0');
|
$objWriter->writeAttribute('xmlns:manifest', 'urn:oasis:names:tc:opendocument:xmlns:manifest:1.0');
|
||||||
$objWriter->writeAttribute('manifest:version', '1.2');
|
$objWriter->writeAttribute('manifest:version', '1.2');
|
||||||
|
|
||||||
// manifest:file-entry
|
// manifest:file-entry
|
||||||
$objWriter->startElement('manifest:file-entry');
|
$objWriter->startElement('manifest:file-entry');
|
||||||
$objWriter->writeAttribute('manifest:media-type', 'application/vnd.oasis.opendocument.text');
|
$objWriter->writeAttribute('manifest:media-type', 'application/vnd.oasis.opendocument.text');
|
||||||
$objWriter->writeAttribute('manifest:version', '1.2');
|
$objWriter->writeAttribute('manifest:version', '1.2');
|
||||||
$objWriter->writeAttribute('manifest:full-path', '/');
|
$objWriter->writeAttribute('manifest:full-path', '/');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
// manifest:file-entry
|
// manifest:file-entry
|
||||||
$objWriter->startElement('manifest:file-entry');
|
$objWriter->startElement('manifest:file-entry');
|
||||||
$objWriter->writeAttribute('manifest:media-type', 'text/xml');
|
$objWriter->writeAttribute('manifest:media-type', 'text/xml');
|
||||||
$objWriter->writeAttribute('manifest:full-path', 'content.xml');
|
$objWriter->writeAttribute('manifest:full-path', 'content.xml');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
// manifest:file-entry
|
// manifest:file-entry
|
||||||
$objWriter->startElement('manifest:file-entry');
|
$objWriter->startElement('manifest:file-entry');
|
||||||
$objWriter->writeAttribute('manifest:media-type', 'text/xml');
|
$objWriter->writeAttribute('manifest:media-type', 'text/xml');
|
||||||
$objWriter->writeAttribute('manifest:full-path', 'meta.xml');
|
$objWriter->writeAttribute('manifest:full-path', 'meta.xml');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
// manifest:file-entry
|
// manifest:file-entry
|
||||||
$objWriter->startElement('manifest:file-entry');
|
$objWriter->startElement('manifest:file-entry');
|
||||||
$objWriter->writeAttribute('manifest:media-type', 'text/xml');
|
$objWriter->writeAttribute('manifest:media-type', 'text/xml');
|
||||||
$objWriter->writeAttribute('manifest:full-path', 'styles.xml');
|
$objWriter->writeAttribute('manifest:full-path', 'styles.xml');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
for ($i = 0; $i < $this->getParentWriter()->getDrawingHashTable()->count(); ++$i) {
|
for ($i = 0; $i < $this->getParentWriter()->getDrawingHashTable()->count(); ++$i) {
|
||||||
if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPWord_Shape_Drawing) {
|
if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPWord_Shape_Drawing) {
|
||||||
$extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getExtension());
|
$extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getExtension());
|
||||||
$mimeType = $this->_getImageMimeType( $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getPath() );
|
$mimeType = $this->_getImageMimeType($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getPath());
|
||||||
|
|
||||||
$objWriter->startElement('manifest:file-entry');
|
$objWriter->startElement('manifest:file-entry');
|
||||||
$objWriter->writeAttribute('manifest:media-type', $mimeType);
|
$objWriter->writeAttribute('manifest:media-type', $mimeType);
|
||||||
$objWriter->writeAttribute('manifest:full-path', 'Pictures/' . str_replace(' ', '_', $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getIndexedFilename()));
|
$objWriter->writeAttribute('manifest:full-path', 'Pictures/' . str_replace(' ', '_', $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getIndexedFilename()));
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
} else if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPWord_Shape_MemoryDrawing) {
|
} else if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPWord_Shape_MemoryDrawing) {
|
||||||
$extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType());
|
$extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType());
|
||||||
$extension = explode('/', $extension);
|
$extension = explode('/', $extension);
|
||||||
$extension = $extension[1];
|
$extension = $extension[1];
|
||||||
|
|
||||||
$mimeType = $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType();
|
$mimeType = $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType();
|
||||||
|
|
||||||
$objWriter->startElement('manifest:file-entry');
|
$objWriter->startElement('manifest:file-entry');
|
||||||
$objWriter->writeAttribute('manifest:media-type', $mimeType);
|
$objWriter->writeAttribute('manifest:media-type', $mimeType);
|
||||||
$objWriter->writeAttribute('manifest:full-path', 'Pictures/' . str_replace(' ', '_', $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getIndexedFilename()));
|
$objWriter->writeAttribute('manifest:full-path', 'Pictures/' . str_replace(' ', '_', $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getIndexedFilename()));
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// Return
|
// Return
|
||||||
return $objWriter->getData();
|
return $objWriter->getData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get image mime type
|
* Get image mime type
|
||||||
*
|
*
|
||||||
* @param string $pFile Filename
|
* @param string $pFile Filename
|
||||||
* @return string Mime Type
|
* @return string Mime Type
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
private function _getImageMimeType($pFile = '')
|
private function _getImageMimeType($pFile = '')
|
||||||
{
|
{
|
||||||
if (PHPWord_Shared_File::file_exists($pFile)) {
|
if (PHPWord_Shared_File::file_exists($pFile)) {
|
||||||
$image = getimagesize($pFile);
|
$image = getimagesize($pFile);
|
||||||
return image_type_to_mime_type($image[2]);
|
return image_type_to_mime_type($image[2]);
|
||||||
} else {
|
} else {
|
||||||
throw new Exception("File $pFile does not exist");
|
throw new Exception("File $pFile does not exist");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,64 +35,65 @@
|
||||||
*/
|
*/
|
||||||
class PHPWord_Writer_ODText_Meta extends PHPWord_Writer_ODText_WriterPart
|
class PHPWord_Writer_ODText_Meta extends PHPWord_Writer_ODText_WriterPart
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Write Meta file to XML format
|
* Write Meta file to XML format
|
||||||
*
|
*
|
||||||
* @param PHPWord $pPHPWord
|
* @param PHPWord $pPHPWord
|
||||||
* @return string XML Output
|
* @return string XML Output
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function writeMeta(PHPWord $pPHPWord = null) {
|
public function writeMeta(PHPWord $pPHPWord = null)
|
||||||
// Create XML writer
|
{
|
||||||
$objWriter = null;
|
// Create XML writer
|
||||||
if ($this->getParentWriter()->getUseDiskCaching()) {
|
$objWriter = null;
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
if ($this->getParentWriter()->getUseDiskCaching()) {
|
||||||
} else {
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
} else {
|
||||||
}
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
||||||
|
}
|
||||||
|
|
||||||
// XML header
|
// XML header
|
||||||
$objWriter->startDocument('1.0','UTF-8');
|
$objWriter->startDocument('1.0', 'UTF-8');
|
||||||
|
|
||||||
// office:document-meta
|
// office:document-meta
|
||||||
$objWriter->startElement('office:document-meta');
|
$objWriter->startElement('office:document-meta');
|
||||||
$objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
|
$objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
|
$objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
|
||||||
$objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
|
$objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
|
||||||
$objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0');
|
$objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
|
$objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
|
||||||
$objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#');
|
$objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#');
|
||||||
$objWriter->writeAttribute('office:version', '1.2');
|
$objWriter->writeAttribute('office:version', '1.2');
|
||||||
|
|
||||||
// office:meta
|
// office:meta
|
||||||
$objWriter->startElement('office:meta');
|
$objWriter->startElement('office:meta');
|
||||||
|
|
||||||
// dc:creator
|
// dc:creator
|
||||||
$objWriter->writeElement('dc:creator', $pPHPWord->getProperties()->getLastModifiedBy());
|
$objWriter->writeElement('dc:creator', $pPHPWord->getProperties()->getLastModifiedBy());
|
||||||
// dc:date
|
// dc:date
|
||||||
$objWriter->writeElement('dc:date', gmdate('Y-m-d\TH:i:s.000' ,$pPHPWord->getProperties()->getModified()));
|
$objWriter->writeElement('dc:date', gmdate('Y-m-d\TH:i:s.000', $pPHPWord->getProperties()->getModified()));
|
||||||
// dc:description
|
// dc:description
|
||||||
$objWriter->writeElement('dc:description', $pPHPWord->getProperties()->getDescription());
|
$objWriter->writeElement('dc:description', $pPHPWord->getProperties()->getDescription());
|
||||||
// dc:subject
|
// dc:subject
|
||||||
$objWriter->writeElement('dc:subject', $pPHPWord->getProperties()->getSubject());
|
$objWriter->writeElement('dc:subject', $pPHPWord->getProperties()->getSubject());
|
||||||
// dc:title
|
// dc:title
|
||||||
$objWriter->writeElement('dc:title', $pPHPWord->getProperties()->getTitle());
|
$objWriter->writeElement('dc:title', $pPHPWord->getProperties()->getTitle());
|
||||||
// meta:creation-date
|
// meta:creation-date
|
||||||
$objWriter->writeElement('meta:creation-date', gmdate('Y-m-d\TH:i:s.000' ,$pPHPWord->getProperties()->getCreated()));
|
$objWriter->writeElement('meta:creation-date', gmdate('Y-m-d\TH:i:s.000', $pPHPWord->getProperties()->getCreated()));
|
||||||
// meta:initial-creator
|
// meta:initial-creator
|
||||||
$objWriter->writeElement('meta:initial-creator', $pPHPWord->getProperties()->getCreator());
|
$objWriter->writeElement('meta:initial-creator', $pPHPWord->getProperties()->getCreator());
|
||||||
// meta:keyword
|
// meta:keyword
|
||||||
$objWriter->writeElement('meta:keyword', $pPHPWord->getProperties()->getKeywords());
|
$objWriter->writeElement('meta:keyword', $pPHPWord->getProperties()->getKeywords());
|
||||||
|
|
||||||
// @todo : Where these properties are written ?
|
// @todo : Where these properties are written ?
|
||||||
// $pPHPWord->getProperties()->getCategory()
|
// $pPHPWord->getProperties()->getCategory()
|
||||||
// $pPHPWord->getProperties()->getCompany()
|
// $pPHPWord->getProperties()->getCompany()
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// Return
|
// Return
|
||||||
return $objWriter->getData();
|
return $objWriter->getData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,17 +35,17 @@
|
||||||
*/
|
*/
|
||||||
class PHPWord_Writer_ODText_Mimetype extends PHPWord_Writer_ODText_WriterPart
|
class PHPWord_Writer_ODText_Mimetype extends PHPWord_Writer_ODText_WriterPart
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Write Mimetype to Text format
|
* Write Mimetype to Text format
|
||||||
*
|
*
|
||||||
* @param PHPWord $pPHPWord
|
* @param PHPWord $pPHPWord
|
||||||
* @return string Text Output
|
* @return string Text Output
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function writeMimetype(PHPWord $pPHPWord = null)
|
public function writeMimetype(PHPWord $pPHPWord = null)
|
||||||
{
|
{
|
||||||
|
|
||||||
return 'application/vnd.oasis.opendocument.text';
|
return 'application/vnd.oasis.opendocument.text';
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,240 +35,239 @@
|
||||||
*/
|
*/
|
||||||
class PHPWord_Writer_ODText_Styles extends PHPWord_Writer_ODText_WriterPart
|
class PHPWord_Writer_ODText_Styles extends PHPWord_Writer_ODText_WriterPart
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Write Styles file to XML format
|
* Write Styles file to XML format
|
||||||
*
|
*
|
||||||
* @param PHPWord $pPHPWord
|
* @param PHPWord $pPHPWord
|
||||||
* @return string XML Output
|
* @return string XML Output
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function writeStyles(PHPWord $pPHPWord = null)
|
public function writeStyles(PHPWord $pPHPWord = null)
|
||||||
{
|
{
|
||||||
// Create XML writer
|
// Create XML writer
|
||||||
$objWriter = null;
|
$objWriter = null;
|
||||||
if ($this->getParentWriter()->getUseDiskCaching()) {
|
if ($this->getParentWriter()->getUseDiskCaching()) {
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
||||||
} else {
|
} else {
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
// XML header
|
// XML header
|
||||||
$objWriter->startDocument('1.0','UTF-8');
|
$objWriter->startDocument('1.0', 'UTF-8');
|
||||||
|
|
||||||
// Styles:Styles
|
// Styles:Styles
|
||||||
$objWriter->startElement('office:document-styles');
|
$objWriter->startElement('office:document-styles');
|
||||||
$objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
|
$objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:style', 'urn:oasis:names:tc:opendocument:xmlns:style:1.0');
|
$objWriter->writeAttribute('xmlns:style', 'urn:oasis:names:tc:opendocument:xmlns:style:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:text', 'urn:oasis:names:tc:opendocument:xmlns:text:1.0');
|
$objWriter->writeAttribute('xmlns:text', 'urn:oasis:names:tc:opendocument:xmlns:text:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:table', 'urn:oasis:names:tc:opendocument:xmlns:table:1.0');
|
$objWriter->writeAttribute('xmlns:table', 'urn:oasis:names:tc:opendocument:xmlns:table:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:draw', 'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0');
|
$objWriter->writeAttribute('xmlns:draw', 'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:fo', 'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0');
|
$objWriter->writeAttribute('xmlns:fo', 'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
|
$objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
|
||||||
$objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
|
$objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
|
||||||
$objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0');
|
$objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:number', 'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0');
|
$objWriter->writeAttribute('xmlns:number', 'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:svg', 'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0');
|
$objWriter->writeAttribute('xmlns:svg', 'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:chart', 'urn:oasis:names:tc:opendocument:xmlns:chart:1.0');
|
$objWriter->writeAttribute('xmlns:chart', 'urn:oasis:names:tc:opendocument:xmlns:chart:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:dr3d', 'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0');
|
$objWriter->writeAttribute('xmlns:dr3d', 'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:math', 'http://www.w3.org/1998/Math/MathML');
|
$objWriter->writeAttribute('xmlns:math', 'http://www.w3.org/1998/Math/MathML');
|
||||||
$objWriter->writeAttribute('xmlns:form', 'urn:oasis:names:tc:opendocument:xmlns:form:1.0');
|
$objWriter->writeAttribute('xmlns:form', 'urn:oasis:names:tc:opendocument:xmlns:form:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:script', 'urn:oasis:names:tc:opendocument:xmlns:script:1.0');
|
$objWriter->writeAttribute('xmlns:script', 'urn:oasis:names:tc:opendocument:xmlns:script:1.0');
|
||||||
$objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
|
$objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
|
||||||
$objWriter->writeAttribute('xmlns:ooow', 'http://openoffice.org/2004/writer');
|
$objWriter->writeAttribute('xmlns:ooow', 'http://openoffice.org/2004/writer');
|
||||||
$objWriter->writeAttribute('xmlns:oooc', 'http://openoffice.org/2004/calc');
|
$objWriter->writeAttribute('xmlns:oooc', 'http://openoffice.org/2004/calc');
|
||||||
$objWriter->writeAttribute('xmlns:dom', 'http://www.w3.org/2001/xml-events');
|
$objWriter->writeAttribute('xmlns:dom', 'http://www.w3.org/2001/xml-events');
|
||||||
$objWriter->writeAttribute('xmlns:rpt', 'http://openoffice.org/2005/report');
|
$objWriter->writeAttribute('xmlns:rpt', 'http://openoffice.org/2005/report');
|
||||||
$objWriter->writeAttribute('xmlns:of', 'urn:oasis:names:tc:opendocument:xmlns:of:1.2');
|
$objWriter->writeAttribute('xmlns:of', 'urn:oasis:names:tc:opendocument:xmlns:of:1.2');
|
||||||
$objWriter->writeAttribute('xmlns:xhtml', 'http://www.w3.org/1999/xhtml');
|
$objWriter->writeAttribute('xmlns:xhtml', 'http://www.w3.org/1999/xhtml');
|
||||||
$objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#');
|
$objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#');
|
||||||
$objWriter->writeAttribute('xmlns:tableooo', 'http://openoffice.org/2009/table');
|
$objWriter->writeAttribute('xmlns:tableooo', 'http://openoffice.org/2009/table');
|
||||||
$objWriter->writeAttribute('xmlns:css3t', 'http://www.w3.org/TR/css3-text/');
|
$objWriter->writeAttribute('xmlns:css3t', 'http://www.w3.org/TR/css3-text/');
|
||||||
$objWriter->writeAttribute('office:version', '1.2');
|
$objWriter->writeAttribute('office:version', '1.2');
|
||||||
|
|
||||||
|
|
||||||
// office:font-face-decls
|
// office:font-face-decls
|
||||||
$objWriter->startElement('office:font-face-decls');
|
$objWriter->startElement('office:font-face-decls');
|
||||||
$arrFonts = array();
|
$arrFonts = array();
|
||||||
$styles = PHPWord_Style::getStyles();
|
$styles = PHPWord_Style::getStyles();
|
||||||
$numFonts = 0;
|
$numFonts = 0;
|
||||||
if(count($styles) > 0) {
|
if (count($styles) > 0) {
|
||||||
foreach($styles as $styleName => $style) {
|
foreach ($styles as $styleName => $style) {
|
||||||
// PHPWord_Style_Font
|
// PHPWord_Style_Font
|
||||||
if($style instanceof PHPWord_Style_Font) {
|
if ($style instanceof PHPWord_Style_Font) {
|
||||||
$numFonts++;
|
$numFonts++;
|
||||||
$name = $style->getName();
|
$name = $style->getName();
|
||||||
if(!in_array($name, $arrFonts)){
|
if (!in_array($name, $arrFonts)) {
|
||||||
$arrFonts[] = $name;
|
$arrFonts[] = $name;
|
||||||
|
|
||||||
// style:font-face
|
// style:font-face
|
||||||
$objWriter->startElement('style:font-face');
|
$objWriter->startElement('style:font-face');
|
||||||
$objWriter->writeAttribute('style:name', $name);
|
$objWriter->writeAttribute('style:name', $name);
|
||||||
$objWriter->writeAttribute('svg:font-family', $name);
|
$objWriter->writeAttribute('svg:font-family', $name);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!in_array('Arial', $arrFonts)){
|
if (!in_array('Arial', $arrFonts)) {
|
||||||
$objWriter->startElement('style:font-face');
|
$objWriter->startElement('style:font-face');
|
||||||
$objWriter->writeAttribute('style:name', 'Arial');
|
$objWriter->writeAttribute('style:name', 'Arial');
|
||||||
$objWriter->writeAttribute('svg:font-family', 'Arial');
|
$objWriter->writeAttribute('svg:font-family', 'Arial');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// office:styles
|
// office:styles
|
||||||
$objWriter->startElement('office:styles');
|
$objWriter->startElement('office:styles');
|
||||||
|
|
||||||
// style:default-style
|
// style:default-style
|
||||||
$objWriter->startElement('style:default-style');
|
$objWriter->startElement('style:default-style');
|
||||||
$objWriter->writeAttribute('style:family', 'paragraph');
|
$objWriter->writeAttribute('style:family', 'paragraph');
|
||||||
|
|
||||||
// style:paragraph-properties
|
// style:paragraph-properties
|
||||||
$objWriter->startElement('style:paragraph-properties');
|
$objWriter->startElement('style:paragraph-properties');
|
||||||
$objWriter->writeAttribute('fo:hyphenation-ladder-count', 'no-limit');
|
$objWriter->writeAttribute('fo:hyphenation-ladder-count', 'no-limit');
|
||||||
$objWriter->writeAttribute('style:text-autospace', 'ideograph-alpha');
|
$objWriter->writeAttribute('style:text-autospace', 'ideograph-alpha');
|
||||||
$objWriter->writeAttribute('style:punctuation-wrap', 'hanging');
|
$objWriter->writeAttribute('style:punctuation-wrap', 'hanging');
|
||||||
$objWriter->writeAttribute('style:line-break', 'strict');
|
$objWriter->writeAttribute('style:line-break', 'strict');
|
||||||
$objWriter->writeAttribute('style:tab-stop-distance', '1.249cm');
|
$objWriter->writeAttribute('style:tab-stop-distance', '1.249cm');
|
||||||
$objWriter->writeAttribute('style:writing-mode', 'page');
|
$objWriter->writeAttribute('style:writing-mode', 'page');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// style:text-properties
|
// style:text-properties
|
||||||
$objWriter->startElement('style:text-properties');
|
$objWriter->startElement('style:text-properties');
|
||||||
$objWriter->writeAttribute('style:use-window-font-color', 'true');
|
$objWriter->writeAttribute('style:use-window-font-color', 'true');
|
||||||
$objWriter->writeAttribute('style:font-name', 'Arial');
|
$objWriter->writeAttribute('style:font-name', 'Arial');
|
||||||
$objWriter->writeAttribute('fo:font-size', '10pt');
|
$objWriter->writeAttribute('fo:font-size', '10pt');
|
||||||
$objWriter->writeAttribute('fo:language', 'fr');
|
$objWriter->writeAttribute('fo:language', 'fr');
|
||||||
$objWriter->writeAttribute('fo:country', 'FR');
|
$objWriter->writeAttribute('fo:country', 'FR');
|
||||||
$objWriter->writeAttribute('style:letter-kerning', 'true');
|
$objWriter->writeAttribute('style:letter-kerning', 'true');
|
||||||
$objWriter->writeAttribute('style:font-name-asian', 'Arial2');
|
$objWriter->writeAttribute('style:font-name-asian', 'Arial2');
|
||||||
$objWriter->writeAttribute('style:font-size-asian', '10pt');
|
$objWriter->writeAttribute('style:font-size-asian', '10pt');
|
||||||
$objWriter->writeAttribute('style:language-asian', 'zh');
|
$objWriter->writeAttribute('style:language-asian', 'zh');
|
||||||
$objWriter->writeAttribute('style:country-asian', 'CN');
|
$objWriter->writeAttribute('style:country-asian', 'CN');
|
||||||
$objWriter->writeAttribute('style:font-name-complex', 'Arial2');
|
$objWriter->writeAttribute('style:font-name-complex', 'Arial2');
|
||||||
$objWriter->writeAttribute('style:font-size-complex', '10pt');
|
$objWriter->writeAttribute('style:font-size-complex', '10pt');
|
||||||
$objWriter->writeAttribute('style:language-complex', 'hi');
|
$objWriter->writeAttribute('style:language-complex', 'hi');
|
||||||
$objWriter->writeAttribute('style:country-complex', 'IN');
|
$objWriter->writeAttribute('style:country-complex', 'IN');
|
||||||
$objWriter->writeAttribute('fo:hyphenate', 'false');
|
$objWriter->writeAttribute('fo:hyphenate', 'false');
|
||||||
$objWriter->writeAttribute('fo:hyphenation-remain-char-count', '2');
|
$objWriter->writeAttribute('fo:hyphenation-remain-char-count', '2');
|
||||||
$objWriter->writeAttribute('fo:hyphenation-push-char-count', '2');
|
$objWriter->writeAttribute('fo:hyphenation-push-char-count', '2');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// Write Style Definitions
|
// Write Style Definitions
|
||||||
$styles = PHPWord_Style::getStyles();
|
$styles = PHPWord_Style::getStyles();
|
||||||
if(count($styles) > 0) {
|
if (count($styles) > 0) {
|
||||||
foreach($styles as $styleName => $style) {
|
foreach ($styles as $styleName => $style) {
|
||||||
if(preg_match('#^T[0-9]+$#', $styleName) == 0
|
if (preg_match('#^T[0-9]+$#', $styleName) == 0
|
||||||
&& preg_match('#^P[0-9]+$#', $styleName) == 0){
|
&& preg_match('#^P[0-9]+$#', $styleName) == 0
|
||||||
// PHPWord_Style_Font
|
) {
|
||||||
if($style instanceof PHPWord_Style_Font) {
|
// PHPWord_Style_Font
|
||||||
// style:style
|
if ($style instanceof PHPWord_Style_Font) {
|
||||||
$objWriter->startElement('style:style');
|
// style:style
|
||||||
$objWriter->writeAttribute('style:name', $styleName);
|
$objWriter->startElement('style:style');
|
||||||
$objWriter->writeAttribute('style:family', 'text');
|
$objWriter->writeAttribute('style:name', $styleName);
|
||||||
|
$objWriter->writeAttribute('style:family', 'text');
|
||||||
|
|
||||||
// style:text-properties
|
// style:text-properties
|
||||||
$objWriter->startElement('style:text-properties');
|
$objWriter->startElement('style:text-properties');
|
||||||
$objWriter->writeAttribute('fo:font-size', ($style->getSize() / 2).'pt');
|
$objWriter->writeAttribute('fo:font-size', ($style->getSize() / 2) . 'pt');
|
||||||
$objWriter->writeAttribute('style:font-size-asian', ($style->getSize() / 2).'pt');
|
$objWriter->writeAttribute('style:font-size-asian', ($style->getSize() / 2) . 'pt');
|
||||||
$objWriter->writeAttribute('style:font-size-complex', ($style->getSize() / 2).'pt');
|
$objWriter->writeAttribute('style:font-size-complex', ($style->getSize() / 2) . 'pt');
|
||||||
if($style->getItalic()) {
|
if ($style->getItalic()) {
|
||||||
$objWriter->writeAttribute('fo:font-style', 'italic');
|
$objWriter->writeAttribute('fo:font-style', 'italic');
|
||||||
$objWriter->writeAttribute('style:font-style-asian', 'italic');
|
$objWriter->writeAttribute('style:font-style-asian', 'italic');
|
||||||
$objWriter->writeAttribute('style:font-style-complex', 'italic');
|
$objWriter->writeAttribute('style:font-style-complex', 'italic');
|
||||||
}
|
}
|
||||||
if($style->getBold()) {
|
if ($style->getBold()) {
|
||||||
$objWriter->writeAttribute('fo:font-weight', 'bold');
|
$objWriter->writeAttribute('fo:font-weight', 'bold');
|
||||||
$objWriter->writeAttribute('style:font-weight-asian', 'bold');
|
$objWriter->writeAttribute('style:font-weight-asian', 'bold');
|
||||||
}
|
}
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
} // PHPWord_Style_Paragraph
|
||||||
// PHPWord_Style_Paragraph
|
elseif ($style instanceof PHPWord_Style_Paragraph) {
|
||||||
elseif($style instanceof PHPWord_Style_Paragraph) {
|
// style:style
|
||||||
// style:style
|
$objWriter->startElement('style:style');
|
||||||
$objWriter->startElement('style:style');
|
$objWriter->writeAttribute('style:name', $styleName);
|
||||||
$objWriter->writeAttribute('style:name', $styleName);
|
$objWriter->writeAttribute('style:family', 'paragraph');
|
||||||
$objWriter->writeAttribute('style:family', 'paragraph');
|
|
||||||
|
|
||||||
//style:paragraph-properties
|
//style:paragraph-properties
|
||||||
$objWriter->startElement('style:paragraph-properties');
|
$objWriter->startElement('style:paragraph-properties');
|
||||||
$objWriter->writeAttribute('fo:margin-top', ((is_null($style->getSpaceBefore())) ? '0' : round(17.6 / $style->getSpaceBefore(), 2)).'cm');
|
$objWriter->writeAttribute('fo:margin-top', ((is_null($style->getSpaceBefore())) ? '0' : round(17.6 / $style->getSpaceBefore(), 2)) . 'cm');
|
||||||
$objWriter->writeAttribute('fo:margin-bottom', ((is_null($style->getSpaceAfter())) ? '0' : round(17.6 / $style->getSpaceAfter(), 2)).'cm');
|
$objWriter->writeAttribute('fo:margin-bottom', ((is_null($style->getSpaceAfter())) ? '0' : round(17.6 / $style->getSpaceAfter(), 2)) . 'cm');
|
||||||
$objWriter->writeAttribute('fo:text-align', $style->getAlign());
|
$objWriter->writeAttribute('fo:text-align', $style->getAlign());
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
}
|
} // PHPWord_Style_TableFull
|
||||||
// PHPWord_Style_TableFull
|
elseif ($style instanceof PHPWord_Style_TableFull) {
|
||||||
elseif($style instanceof PHPWord_Style_TableFull) {
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
|
||||||
|
|
||||||
// office:automatic-styles
|
// office:automatic-styles
|
||||||
$objWriter->startElement('office:automatic-styles');
|
$objWriter->startElement('office:automatic-styles');
|
||||||
// style:page-layout
|
// style:page-layout
|
||||||
$objWriter->startElement('style:page-layout');
|
$objWriter->startElement('style:page-layout');
|
||||||
$objWriter->writeAttribute('style:name', 'Mpm1');
|
$objWriter->writeAttribute('style:name', 'Mpm1');
|
||||||
// style:page-layout-properties
|
// style:page-layout-properties
|
||||||
$objWriter->startElement('style:page-layout-properties');
|
$objWriter->startElement('style:page-layout-properties');
|
||||||
$objWriter->writeAttribute('fo:page-width', "21.001cm");
|
$objWriter->writeAttribute('fo:page-width', "21.001cm");
|
||||||
$objWriter->writeAttribute('fo:page-height','29.7cm');
|
$objWriter->writeAttribute('fo:page-height', '29.7cm');
|
||||||
$objWriter->writeAttribute('style:num-format','1');
|
$objWriter->writeAttribute('style:num-format', '1');
|
||||||
$objWriter->writeAttribute('style:print-orientation','portrait');
|
$objWriter->writeAttribute('style:print-orientation', 'portrait');
|
||||||
$objWriter->writeAttribute('fo:margin-top','2.501cm');
|
$objWriter->writeAttribute('fo:margin-top', '2.501cm');
|
||||||
$objWriter->writeAttribute('fo:margin-bottom','2cm');
|
$objWriter->writeAttribute('fo:margin-bottom', '2cm');
|
||||||
$objWriter->writeAttribute('fo:margin-left','2.501cm');
|
$objWriter->writeAttribute('fo:margin-left', '2.501cm');
|
||||||
$objWriter->writeAttribute('fo:margin-right','2.501cm');
|
$objWriter->writeAttribute('fo:margin-right', '2.501cm');
|
||||||
$objWriter->writeAttribute('style:writing-mode','lr-tb');
|
$objWriter->writeAttribute('style:writing-mode', 'lr-tb');
|
||||||
$objWriter->writeAttribute('style:layout-grid-color','#c0c0c0');
|
$objWriter->writeAttribute('style:layout-grid-color', '#c0c0c0');
|
||||||
$objWriter->writeAttribute('style:layout-grid-lines','25199');
|
$objWriter->writeAttribute('style:layout-grid-lines', '25199');
|
||||||
$objWriter->writeAttribute('style:layout-grid-base-height','0.423cm');
|
$objWriter->writeAttribute('style:layout-grid-base-height', '0.423cm');
|
||||||
$objWriter->writeAttribute('style:layout-grid-ruby-height','0cm');
|
$objWriter->writeAttribute('style:layout-grid-ruby-height', '0cm');
|
||||||
$objWriter->writeAttribute('style:layout-grid-mode','none');
|
$objWriter->writeAttribute('style:layout-grid-mode', 'none');
|
||||||
$objWriter->writeAttribute('style:layout-grid-ruby-below','false');
|
$objWriter->writeAttribute('style:layout-grid-ruby-below', 'false');
|
||||||
$objWriter->writeAttribute('style:layout-grid-print','false');
|
$objWriter->writeAttribute('style:layout-grid-print', 'false');
|
||||||
$objWriter->writeAttribute('style:layout-grid-display','false');
|
$objWriter->writeAttribute('style:layout-grid-display', 'false');
|
||||||
$objWriter->writeAttribute('style:layout-grid-base-width','0.37cm');
|
$objWriter->writeAttribute('style:layout-grid-base-width', '0.37cm');
|
||||||
$objWriter->writeAttribute('style:layout-grid-snap-to','true');
|
$objWriter->writeAttribute('style:layout-grid-snap-to', 'true');
|
||||||
$objWriter->writeAttribute('style:footnote-max-height','0cm');
|
$objWriter->writeAttribute('style:footnote-max-height', '0cm');
|
||||||
//style:footnote-sep
|
//style:footnote-sep
|
||||||
$objWriter->startElement('style:footnote-sep');
|
$objWriter->startElement('style:footnote-sep');
|
||||||
$objWriter->writeAttribute('style:width', '0.018cm');
|
$objWriter->writeAttribute('style:width', '0.018cm');
|
||||||
$objWriter->writeAttribute('style:line-style','solid');
|
$objWriter->writeAttribute('style:line-style', 'solid');
|
||||||
$objWriter->writeAttribute('style:adjustment','left');
|
$objWriter->writeAttribute('style:adjustment', 'left');
|
||||||
$objWriter->writeAttribute('style:rel-width','25%');
|
$objWriter->writeAttribute('style:rel-width', '25%');
|
||||||
$objWriter->writeAttribute('style:color','#000000');
|
$objWriter->writeAttribute('style:color', '#000000');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
// style:header-style
|
// style:header-style
|
||||||
$objWriter->startElement('style:header-style');
|
$objWriter->startElement('style:header-style');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
// style:footer-style
|
// style:footer-style
|
||||||
$objWriter->startElement('style:footer-style');
|
$objWriter->startElement('style:footer-style');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// office:master-styles
|
// office:master-styles
|
||||||
$objWriter->startElement('office:master-styles');
|
$objWriter->startElement('office:master-styles');
|
||||||
// style:master-page
|
// style:master-page
|
||||||
$objWriter->startElement('style:master-page');
|
$objWriter->startElement('style:master-page');
|
||||||
$objWriter->writeAttribute('style:name', 'Standard');
|
$objWriter->writeAttribute('style:name', 'Standard');
|
||||||
$objWriter->writeAttribute('style:page-layout-name', 'Mpm1');
|
$objWriter->writeAttribute('style:page-layout-name', 'Mpm1');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// Return
|
// Return
|
||||||
return $objWriter->getData();
|
return $objWriter->getData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,34 +35,36 @@
|
||||||
*/
|
*/
|
||||||
abstract class PHPWord_Writer_ODText_WriterPart
|
abstract class PHPWord_Writer_ODText_WriterPart
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Parent IWriter object
|
* Parent IWriter object
|
||||||
*
|
*
|
||||||
* @var PHPWord_Writer_IWriter
|
* @var PHPWord_Writer_IWriter
|
||||||
*/
|
*/
|
||||||
private $_parentWriter;
|
private $_parentWriter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set parent IWriter object
|
* Set parent IWriter object
|
||||||
*
|
*
|
||||||
* @param PHPWord_Writer_IWriter $pWriter
|
* @param PHPWord_Writer_IWriter $pWriter
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function setParentWriter(PHPWord_Writer_IWriter $pWriter = null) {
|
public function setParentWriter(PHPWord_Writer_IWriter $pWriter = null)
|
||||||
$this->_parentWriter = $pWriter;
|
{
|
||||||
}
|
$this->_parentWriter = $pWriter;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get parent IWriter object
|
* Get parent IWriter object
|
||||||
*
|
*
|
||||||
* @return PHPWord_Writer_IWriter
|
* @return PHPWord_Writer_IWriter
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function getParentWriter() {
|
public function getParentWriter()
|
||||||
if (!is_null($this->_parentWriter)) {
|
{
|
||||||
return $this->_parentWriter;
|
if (!is_null($this->_parentWriter)) {
|
||||||
} else {
|
return $this->_parentWriter;
|
||||||
throw new Exception("No parent PHPWord_Writer_IWriter assigned.");
|
} else {
|
||||||
}
|
throw new Exception("No parent PHPWord_Writer_IWriter assigned.");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,284 +27,294 @@
|
||||||
|
|
||||||
class PHPWord_Writer_RTF implements PHPWord_Writer_IWriter
|
class PHPWord_Writer_RTF implements PHPWord_Writer_IWriter
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Private PHPWord
|
* Private PHPWord
|
||||||
*
|
*
|
||||||
* @var PHPWord
|
* @var PHPWord
|
||||||
*/
|
*/
|
||||||
private $_document;
|
private $_document;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Private unique PHPWord_Worksheet_BaseDrawing HashTable
|
* Private unique PHPWord_Worksheet_BaseDrawing HashTable
|
||||||
*
|
*
|
||||||
* @var PHPWord_HashTable
|
* @var PHPWord_HashTable
|
||||||
*/
|
*/
|
||||||
private $_drawingHashTable;
|
private $_drawingHashTable;
|
||||||
|
|
||||||
private $_colorTable;
|
private $_colorTable;
|
||||||
private $_fontTable;
|
private $_fontTable;
|
||||||
private $_lastParagraphStyle;
|
private $_lastParagraphStyle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new PHPWord_Writer_ODText
|
* Create a new PHPWord_Writer_ODText
|
||||||
*
|
*
|
||||||
* @param PHPWord $pPHPWord
|
* @param PHPWord $pPHPWord
|
||||||
*/
|
*/
|
||||||
public function __construct(PHPWord $pPHPWord = null)
|
public function __construct(PHPWord $pPHPWord = null)
|
||||||
{
|
{
|
||||||
// Assign PHPWord
|
// Assign PHPWord
|
||||||
$this->setPHPWord($pPHPWord);
|
$this->setPHPWord($pPHPWord);
|
||||||
|
|
||||||
// Set HashTable variables
|
// Set HashTable variables
|
||||||
$this->_drawingHashTable = new PHPWord_HashTable();
|
$this->_drawingHashTable = new PHPWord_HashTable();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Save PHPWord to file
|
* Save PHPWord to file
|
||||||
*
|
*
|
||||||
* @param string $pFileName
|
* @param string $pFileName
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function save($pFilename = null)
|
public function save($pFilename = null)
|
||||||
{
|
{
|
||||||
if (!is_null($this->_document)) {
|
if (!is_null($this->_document)) {
|
||||||
// If $pFilename is php://output or php://stdout, make it a temporary file...
|
// If $pFilename is php://output or php://stdout, make it a temporary file...
|
||||||
$originalFilename = $pFilename;
|
$originalFilename = $pFilename;
|
||||||
if (strtolower($pFilename) == 'php://output' || strtolower($pFilename) == 'php://stdout') {
|
if (strtolower($pFilename) == 'php://output' || strtolower($pFilename) == 'php://stdout') {
|
||||||
$pFilename = @tempnam('./', 'phppttmp');
|
$pFilename = @tempnam('./', 'phppttmp');
|
||||||
if ($pFilename == '') {
|
if ($pFilename == '') {
|
||||||
$pFilename = $originalFilename;
|
$pFilename = $originalFilename;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$hFile = fopen($pFilename, 'w') or die("can't open file");
|
$hFile = fopen($pFilename, 'w') or die("can't open file");
|
||||||
fwrite($hFile, $this->_getData());
|
fwrite($hFile, $this->_getData());
|
||||||
fclose($hFile);
|
fclose($hFile);
|
||||||
|
|
||||||
// If a temporary file was used, copy it to the correct file stream
|
// If a temporary file was used, copy it to the correct file stream
|
||||||
if ($originalFilename != $pFilename) {
|
if ($originalFilename != $pFilename) {
|
||||||
if (copy($pFilename, $originalFilename) === false) {
|
if (copy($pFilename, $originalFilename) === false) {
|
||||||
throw new Exception("Could not copy temporary zip file $pFilename to $originalFilename.");
|
throw new Exception("Could not copy temporary zip file $pFilename to $originalFilename.");
|
||||||
}
|
}
|
||||||
@unlink($pFilename);
|
@unlink($pFilename);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
throw new Exception("PHPWord object unassigned.");
|
throw new Exception("PHPWord object unassigned.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get PHPWord object
|
* Get PHPWord object
|
||||||
*
|
*
|
||||||
* @return PHPWord
|
* @return PHPWord
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function getPHPWord() {
|
public function getPHPWord()
|
||||||
if (!is_null($this->_document)) {
|
{
|
||||||
return $this->_document;
|
if (!is_null($this->_document)) {
|
||||||
} else {
|
return $this->_document;
|
||||||
throw new Exception("No PHPWord assigned.");
|
} else {
|
||||||
}
|
throw new Exception("No PHPWord assigned.");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get PHPWord object
|
* Get PHPWord object
|
||||||
*
|
*
|
||||||
* @param PHPWord $pPHPWord PHPWord object
|
* @param PHPWord $pPHPWord PHPWord object
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
* @return PHPWord_Writer_PowerPoint2007
|
* @return PHPWord_Writer_PowerPoint2007
|
||||||
*/
|
*/
|
||||||
public function setPHPWord(PHPWord $pPHPWord = null) {
|
public function setPHPWord(PHPWord $pPHPWord = null)
|
||||||
$this->_document = $pPHPWord;
|
{
|
||||||
return $this;
|
$this->_document = $pPHPWord;
|
||||||
}
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get PHPWord_Worksheet_BaseDrawing HashTable
|
* Get PHPWord_Worksheet_BaseDrawing HashTable
|
||||||
*
|
*
|
||||||
* @return PHPWord_HashTable
|
* @return PHPWord_HashTable
|
||||||
*/
|
*/
|
||||||
public function getDrawingHashTable() {
|
public function getDrawingHashTable()
|
||||||
return $this->_drawingHashTable;
|
{
|
||||||
}
|
return $this->_drawingHashTable;
|
||||||
|
}
|
||||||
|
|
||||||
private function _getData(){
|
private function _getData()
|
||||||
// PHPWord object : $this->_document
|
{
|
||||||
$this->_fontTable = $this->_getDataFont();
|
// PHPWord object : $this->_document
|
||||||
$this->_colorTable = $this->_getDataColor();
|
$this->_fontTable = $this->_getDataFont();
|
||||||
|
$this->_colorTable = $this->_getDataColor();
|
||||||
|
|
||||||
$sRTFContent = '{\rtf1';
|
$sRTFContent = '{\rtf1';
|
||||||
// Set the default character set
|
// Set the default character set
|
||||||
$sRTFContent .= '\ansi\ansicpg1252';
|
$sRTFContent .= '\ansi\ansicpg1252';
|
||||||
// Set the default font (the first one)
|
// Set the default font (the first one)
|
||||||
$sRTFContent .= '\deff0';
|
$sRTFContent .= '\deff0';
|
||||||
// Set the default tab size (720 twips)
|
// Set the default tab size (720 twips)
|
||||||
$sRTFContent .= '\deftab720';
|
$sRTFContent .= '\deftab720';
|
||||||
// Set the font tbl group
|
// Set the font tbl group
|
||||||
$sRTFContent .= '{\fonttbl';
|
$sRTFContent .= '{\fonttbl';
|
||||||
foreach ($this->_fontTable as $idx => $font){
|
foreach ($this->_fontTable as $idx => $font) {
|
||||||
$sRTFContent .= '{\f'.$idx.'\fnil\fcharset0 '.$font.';}';
|
$sRTFContent .= '{\f' . $idx . '\fnil\fcharset0 ' . $font . ';}';
|
||||||
}
|
}
|
||||||
$sRTFContent .= '}'.PHP_EOL;
|
$sRTFContent .= '}' . PHP_EOL;
|
||||||
// Set the color tbl group
|
// Set the color tbl group
|
||||||
$sRTFContent .= '{\colortbl ';
|
$sRTFContent .= '{\colortbl ';
|
||||||
foreach ($this->_colorTable as $idx => $color){
|
foreach ($this->_colorTable as $idx => $color) {
|
||||||
$arrColor = PHPWord_Shared_Drawing::htmlToRGB($color);
|
$arrColor = PHPWord_Shared_Drawing::htmlToRGB($color);
|
||||||
$sRTFContent .= ';\red'.$arrColor[0].'\green'.$arrColor[1].'\blue'.$arrColor[2].'';
|
$sRTFContent .= ';\red' . $arrColor[0] . '\green' . $arrColor[1] . '\blue' . $arrColor[2] . '';
|
||||||
}
|
}
|
||||||
$sRTFContent .= ';}'.PHP_EOL;
|
$sRTFContent .= ';}' . PHP_EOL;
|
||||||
// Set the generator
|
// Set the generator
|
||||||
$sRTFContent .= '{\*\generator PHPWord;}';
|
$sRTFContent .= '{\*\generator PHPWord;}';
|
||||||
// Set the view mode of the document
|
// Set the view mode of the document
|
||||||
$sRTFContent .= '\viewkind4';
|
$sRTFContent .= '\viewkind4';
|
||||||
// Set the numberof bytes that follows a unicode character
|
// Set the numberof bytes that follows a unicode character
|
||||||
$sRTFContent .= '\uc1';
|
$sRTFContent .= '\uc1';
|
||||||
// Resets to default paragraph properties.
|
// Resets to default paragraph properties.
|
||||||
$sRTFContent .= '\pard';
|
$sRTFContent .= '\pard';
|
||||||
// No widow/orphan control
|
// No widow/orphan control
|
||||||
$sRTFContent .= '\nowidctlpar';
|
$sRTFContent .= '\nowidctlpar';
|
||||||
// Applies a language to a text run (1036 : French (France))
|
// Applies a language to a text run (1036 : French (France))
|
||||||
$sRTFContent .= '\lang1036';
|
$sRTFContent .= '\lang1036';
|
||||||
// Point size (in half-points) above which to kern character pairs
|
// Point size (in half-points) above which to kern character pairs
|
||||||
$sRTFContent .= '\kerning1';
|
$sRTFContent .= '\kerning1';
|
||||||
// Set the font size in half-points
|
// Set the font size in half-points
|
||||||
$sRTFContent .= '\fs20';
|
$sRTFContent .= '\fs20';
|
||||||
// Body
|
// Body
|
||||||
$sRTFContent .= $this->_getDataContent();
|
$sRTFContent .= $this->_getDataContent();
|
||||||
|
|
||||||
|
|
||||||
$sRTFContent .= '}';
|
$sRTFContent .= '}';
|
||||||
|
|
||||||
return $sRTFContent;
|
return $sRTFContent;
|
||||||
}
|
}
|
||||||
private function _getDataFont(){
|
|
||||||
$pPHPWord = $this->_document;
|
|
||||||
|
|
||||||
$arrFonts = array();
|
private function _getDataFont()
|
||||||
// Default font : Arial
|
{
|
||||||
$arrFonts[] = 'Arial';
|
$pPHPWord = $this->_document;
|
||||||
// PHPWord object : $this->_document
|
|
||||||
|
|
||||||
// Browse styles
|
$arrFonts = array();
|
||||||
$styles = PHPWord_Style::getStyles();
|
// Default font : Arial
|
||||||
$numPStyles = 0;
|
$arrFonts[] = 'Arial';
|
||||||
if(count($styles) > 0) {
|
// PHPWord object : $this->_document
|
||||||
foreach($styles as $styleName => $style) {
|
|
||||||
// PHPWord_Style_Font
|
|
||||||
if($style instanceof PHPWord_Style_Font) {
|
|
||||||
if(in_array($style->getName(), $arrFonts) == FALSE){
|
|
||||||
$arrFonts[] = $style->getName();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Search all fonts used
|
// Browse styles
|
||||||
$_sections = $pPHPWord->getSections();
|
$styles = PHPWord_Style::getStyles();
|
||||||
$countSections = count($_sections);
|
$numPStyles = 0;
|
||||||
if($countSections > 0) {
|
if (count($styles) > 0) {
|
||||||
$pSection = 0;
|
foreach ($styles as $styleName => $style) {
|
||||||
|
// PHPWord_Style_Font
|
||||||
|
if ($style instanceof PHPWord_Style_Font) {
|
||||||
|
if (in_array($style->getName(), $arrFonts) == FALSE) {
|
||||||
|
$arrFonts[] = $style->getName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
foreach($_sections as $section) {
|
// Search all fonts used
|
||||||
$pSection++;
|
$_sections = $pPHPWord->getSections();
|
||||||
$_elements = $section->getElements();
|
$countSections = count($_sections);
|
||||||
|
if ($countSections > 0) {
|
||||||
|
$pSection = 0;
|
||||||
|
|
||||||
foreach($_elements as $element) {
|
foreach ($_sections as $section) {
|
||||||
if($element instanceof PHPWord_Section_Text) {
|
$pSection++;
|
||||||
$fStyle = $element->getFontStyle();
|
$_elements = $section->getElements();
|
||||||
|
|
||||||
if($fStyle instanceof PHPWord_Style_Font){
|
foreach ($_elements as $element) {
|
||||||
if(in_array($fStyle->getName(), $arrFonts) == FALSE){
|
if ($element instanceof PHPWord_Section_Text) {
|
||||||
$arrFonts[] = $fStyle->getName();
|
$fStyle = $element->getFontStyle();
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $arrFonts;
|
if ($fStyle instanceof PHPWord_Style_Font) {
|
||||||
}
|
if (in_array($fStyle->getName(), $arrFonts) == FALSE) {
|
||||||
private function _getDataColor(){
|
$arrFonts[] = $fStyle->getName();
|
||||||
$pPHPWord = $this->_document;
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$arrColors = array();
|
return $arrFonts;
|
||||||
// PHPWord object : $this->_document
|
}
|
||||||
|
|
||||||
// Browse styles
|
private function _getDataColor()
|
||||||
$styles = PHPWord_Style::getStyles();
|
{
|
||||||
$numPStyles = 0;
|
$pPHPWord = $this->_document;
|
||||||
if(count($styles) > 0) {
|
|
||||||
foreach($styles as $styleName => $style) {
|
|
||||||
// PHPWord_Style_Font
|
|
||||||
if($style instanceof PHPWord_Style_Font) {
|
|
||||||
$color = $style->getColor();
|
|
||||||
$fgcolor = $style->getFgColor();
|
|
||||||
if(in_array($color, $arrColors) == FALSE && $color != '000000' && !empty($color)){
|
|
||||||
$arrColors[] = $color;
|
|
||||||
}
|
|
||||||
if(in_array($fgcolor, $arrColors) == FALSE && $fgcolor != '000000' && !empty($fgcolor)){
|
|
||||||
$arrColors[] = $fgcolor;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Search all fonts used
|
$arrColors = array();
|
||||||
$_sections = $pPHPWord->getSections();
|
// PHPWord object : $this->_document
|
||||||
$countSections = count($_sections);
|
|
||||||
if($countSections > 0) {
|
|
||||||
$pSection = 0;
|
|
||||||
|
|
||||||
foreach($_sections as $section) {
|
// Browse styles
|
||||||
$pSection++;
|
$styles = PHPWord_Style::getStyles();
|
||||||
$_elements = $section->getElements();
|
$numPStyles = 0;
|
||||||
|
if (count($styles) > 0) {
|
||||||
|
foreach ($styles as $styleName => $style) {
|
||||||
|
// PHPWord_Style_Font
|
||||||
|
if ($style instanceof PHPWord_Style_Font) {
|
||||||
|
$color = $style->getColor();
|
||||||
|
$fgcolor = $style->getFgColor();
|
||||||
|
if (in_array($color, $arrColors) == FALSE && $color != '000000' && !empty($color)) {
|
||||||
|
$arrColors[] = $color;
|
||||||
|
}
|
||||||
|
if (in_array($fgcolor, $arrColors) == FALSE && $fgcolor != '000000' && !empty($fgcolor)) {
|
||||||
|
$arrColors[] = $fgcolor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
foreach($_elements as $element) {
|
// Search all fonts used
|
||||||
if($element instanceof PHPWord_Section_Text) {
|
$_sections = $pPHPWord->getSections();
|
||||||
$fStyle = $element->getFontStyle();
|
$countSections = count($_sections);
|
||||||
|
if ($countSections > 0) {
|
||||||
|
$pSection = 0;
|
||||||
|
|
||||||
if($fStyle instanceof PHPWord_Style_Font){
|
foreach ($_sections as $section) {
|
||||||
if(in_array($fStyle->getColor(), $arrColors) == FALSE){
|
$pSection++;
|
||||||
$arrColors[] = $fStyle->getColor();
|
$_elements = $section->getElements();
|
||||||
}
|
|
||||||
if(in_array($fStyle->getFgColor(), $arrColors) == FALSE){
|
|
||||||
$arrColors[] = $fStyle->getFgColor();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $arrColors;
|
foreach ($_elements as $element) {
|
||||||
}
|
if ($element instanceof PHPWord_Section_Text) {
|
||||||
private function _getDataContent(){
|
$fStyle = $element->getFontStyle();
|
||||||
$pPHPWord = $this->_document;
|
|
||||||
$sRTFBody = '';
|
|
||||||
|
|
||||||
$_sections = $pPHPWord->getSections();
|
if ($fStyle instanceof PHPWord_Style_Font) {
|
||||||
$countSections = count($_sections);
|
if (in_array($fStyle->getColor(), $arrColors) == FALSE) {
|
||||||
$pSection = 0;
|
$arrColors[] = $fStyle->getColor();
|
||||||
|
}
|
||||||
|
if (in_array($fStyle->getFgColor(), $arrColors) == FALSE) {
|
||||||
|
$arrColors[] = $fStyle->getFgColor();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if($countSections > 0) {
|
return $arrColors;
|
||||||
foreach($_sections as $section) {
|
}
|
||||||
$pSection++;
|
|
||||||
$_elements = $section->getElements();
|
private function _getDataContent()
|
||||||
foreach($_elements as $element) {
|
{
|
||||||
if($element instanceof PHPWord_Section_Text) {
|
$pPHPWord = $this->_document;
|
||||||
$sRTFBody .= $this->_getDataContent_writeText($element);
|
$sRTFBody = '';
|
||||||
}/* elseif($element instanceof PHPWord_Section_TextRun) {
|
|
||||||
|
$_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) {
|
||||||
|
$sRTFBody .= $this->_getDataContent_writeText($element);
|
||||||
|
} /* elseif($element instanceof PHPWord_Section_TextRun) {
|
||||||
$this->_writeTextRun($objWriter, $element);
|
$this->_writeTextRun($objWriter, $element);
|
||||||
} elseif($element instanceof PHPWord_Section_Link) {
|
} elseif($element instanceof PHPWord_Section_Link) {
|
||||||
$this->_writeLink($objWriter, $element);
|
$this->_writeLink($objWriter, $element);
|
||||||
} elseif($element instanceof PHPWord_Section_Title) {
|
} elseif($element instanceof PHPWord_Section_Title) {
|
||||||
$this->_writeTitle($objWriter, $element);
|
$this->_writeTitle($objWriter, $element);
|
||||||
}*/
|
}*/
|
||||||
elseif($element instanceof PHPWord_Section_TextBreak) {
|
elseif ($element instanceof PHPWord_Section_TextBreak) {
|
||||||
$sRTFBody .= $this->_getDataContent_writeTextBreak();
|
$sRTFBody .= $this->_getDataContent_writeTextBreak();
|
||||||
}/* elseif($element instanceof PHPWord_Section_PageBreak) {
|
} /* elseif($element instanceof PHPWord_Section_PageBreak) {
|
||||||
$this->_writePageBreak($objWriter);
|
$this->_writePageBreak($objWriter);
|
||||||
} elseif($element instanceof PHPWord_Section_Table) {
|
} elseif($element instanceof PHPWord_Section_Table) {
|
||||||
$this->_writeTable($objWriter, $element);
|
$this->_writeTable($objWriter, $element);
|
||||||
|
|
@ -318,106 +328,108 @@ class PHPWord_Writer_RTF implements PHPWord_Writer_IWriter
|
||||||
} elseif($element instanceof PHPWord_TOC) {
|
} elseif($element instanceof PHPWord_TOC) {
|
||||||
$this->_writeTOC($objWriter);
|
$this->_writeTOC($objWriter);
|
||||||
}*/
|
}*/
|
||||||
else {
|
else {
|
||||||
print_r($element);
|
print_r($element);
|
||||||
echo '<br />';
|
echo '<br />';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $sRTFBody;
|
return $sRTFBody;
|
||||||
}
|
}
|
||||||
private function _getDataContent_writeText(PHPWord_Section_Text $text){
|
|
||||||
$sRTFText = '';
|
|
||||||
|
|
||||||
$styleFont = $text->getFontStyle();
|
private function _getDataContent_writeText(PHPWord_Section_Text $text)
|
||||||
$SfIsObject = ($styleFont instanceof PHPWord_Style_Font) ? true : false;
|
{
|
||||||
if(!$SfIsObject) {
|
$sRTFText = '';
|
||||||
$styleFont = PHPWord_Style::getStyle($styleFont);
|
|
||||||
}
|
|
||||||
|
|
||||||
$styleParagraph = $text->getParagraphStyle();
|
$styleFont = $text->getFontStyle();
|
||||||
$SpIsObject = ($styleParagraph instanceof PHPWord_Style_Paragraph) ? true : false;
|
$SfIsObject = ($styleFont instanceof PHPWord_Style_Font) ? true : false;
|
||||||
if(!$SpIsObject) {
|
if (!$SfIsObject) {
|
||||||
$styleParagraph = PHPWord_Style::getStyle($styleParagraph);
|
$styleFont = PHPWord_Style::getStyle($styleFont);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($styleParagraph){
|
$styleParagraph = $text->getParagraphStyle();
|
||||||
if($this->_lastParagraphStyle != $text->getParagraphStyle()){
|
$SpIsObject = ($styleParagraph instanceof PHPWord_Style_Paragraph) ? true : false;
|
||||||
$sRTFText .= '\pard\nowidctlpar';
|
if (!$SpIsObject) {
|
||||||
if($styleParagraph->getSpaceAfter() != null){
|
$styleParagraph = PHPWord_Style::getStyle($styleParagraph);
|
||||||
$sRTFText .= '\sa'.$styleParagraph->getSpaceAfter();
|
}
|
||||||
}
|
|
||||||
if($styleParagraph->getAlign() != null){
|
|
||||||
if($styleParagraph->getAlign() == 'center'){
|
|
||||||
$sRTFText .= '\qc';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$this->_lastParagraphStyle = $text->getParagraphStyle();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$this->_lastParagraphStyle = '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$this->_lastParagraphStyle = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
if($styleFont){
|
if ($styleParagraph) {
|
||||||
if($styleFont->getColor() != null){
|
if ($this->_lastParagraphStyle != $text->getParagraphStyle()) {
|
||||||
$idxColor = array_search($styleFont->getColor(), $this->_colorTable);
|
$sRTFText .= '\pard\nowidctlpar';
|
||||||
if($idxColor !== FALSE){
|
if ($styleParagraph->getSpaceAfter() != null) {
|
||||||
$sRTFText .= '\cf'.($idxColor+1);
|
$sRTFText .= '\sa' . $styleParagraph->getSpaceAfter();
|
||||||
}
|
}
|
||||||
} else {
|
if ($styleParagraph->getAlign() != null) {
|
||||||
$sRTFText .= '\cf0';
|
if ($styleParagraph->getAlign() == 'center') {
|
||||||
}
|
$sRTFText .= '\qc';
|
||||||
if($styleFont->getName() != null){
|
}
|
||||||
$idxFont = array_search($styleFont->getName(), $this->_fontTable);
|
}
|
||||||
if($idxFont !== FALSE){
|
$this->_lastParagraphStyle = $text->getParagraphStyle();
|
||||||
$sRTFText .= '\f'.$idxFont;
|
} else {
|
||||||
}
|
$this->_lastParagraphStyle = '';
|
||||||
} else {
|
}
|
||||||
$sRTFText .= '\f0';
|
} else {
|
||||||
}
|
$this->_lastParagraphStyle = '';
|
||||||
if($styleFont->getBold()){
|
}
|
||||||
$sRTFText .= '\b';
|
|
||||||
}
|
|
||||||
if($styleFont->getBold()){
|
|
||||||
$sRTFText .= '\i';
|
|
||||||
}
|
|
||||||
if($styleFont->getSize()){
|
|
||||||
$sRTFText .= '\fs'.$styleFont->getSize();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if($this->_lastParagraphStyle != '' || $styleFont){
|
|
||||||
$sRTFText .= ' ';
|
|
||||||
}
|
|
||||||
$sRTFText .= $text->getText();
|
|
||||||
|
|
||||||
if($styleFont){
|
if ($styleFont) {
|
||||||
$sRTFText .= '\cf0';
|
if ($styleFont->getColor() != null) {
|
||||||
$sRTFText .= '\f0';
|
$idxColor = array_search($styleFont->getColor(), $this->_colorTable);
|
||||||
|
if ($idxColor !== FALSE) {
|
||||||
|
$sRTFText .= '\cf' . ($idxColor + 1);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$sRTFText .= '\cf0';
|
||||||
|
}
|
||||||
|
if ($styleFont->getName() != null) {
|
||||||
|
$idxFont = array_search($styleFont->getName(), $this->_fontTable);
|
||||||
|
if ($idxFont !== FALSE) {
|
||||||
|
$sRTFText .= '\f' . $idxFont;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$sRTFText .= '\f0';
|
||||||
|
}
|
||||||
|
if ($styleFont->getBold()) {
|
||||||
|
$sRTFText .= '\b';
|
||||||
|
}
|
||||||
|
if ($styleFont->getBold()) {
|
||||||
|
$sRTFText .= '\i';
|
||||||
|
}
|
||||||
|
if ($styleFont->getSize()) {
|
||||||
|
$sRTFText .= '\fs' . $styleFont->getSize();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($this->_lastParagraphStyle != '' || $styleFont) {
|
||||||
|
$sRTFText .= ' ';
|
||||||
|
}
|
||||||
|
$sRTFText .= $text->getText();
|
||||||
|
|
||||||
if($styleFont->getBold()){
|
if ($styleFont) {
|
||||||
$sRTFText .= '\b0';
|
$sRTFText .= '\cf0';
|
||||||
}
|
$sRTFText .= '\f0';
|
||||||
if($styleFont->getItalic()){
|
|
||||||
$sRTFText .= '\i0';
|
|
||||||
}
|
|
||||||
if($styleFont->getSize()){
|
|
||||||
$sRTFText .= '\fs20';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$sRTFText .= '\par'.PHP_EOL;
|
if ($styleFont->getBold()) {
|
||||||
return $sRTFText;
|
$sRTFText .= '\b0';
|
||||||
}
|
}
|
||||||
private function _getDataContent_writeTextBreak(){
|
if ($styleFont->getItalic()) {
|
||||||
$this->_lastParagraphStyle = '';
|
$sRTFText .= '\i0';
|
||||||
|
}
|
||||||
|
if ($styleFont->getSize()) {
|
||||||
|
$sRTFText .= '\fs20';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return '\par'.PHP_EOL;
|
$sRTFText .= '\par' . PHP_EOL;
|
||||||
}
|
return $sRTFText;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function _getDataContent_writeTextBreak()
|
||||||
|
{
|
||||||
|
$this->_lastParagraphStyle = '';
|
||||||
|
|
||||||
|
return '\par' . PHP_EOL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -26,216 +26,222 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
class PHPWord_Writer_Word2007 implements PHPWord_Writer_IWriter {
|
class PHPWord_Writer_Word2007 implements PHPWord_Writer_IWriter
|
||||||
|
{
|
||||||
|
|
||||||
private $_document;
|
private $_document;
|
||||||
private $_writerParts;
|
private $_writerParts;
|
||||||
private $_diskCachingDirectory;
|
private $_diskCachingDirectory;
|
||||||
private $_useDiskCaching = false;
|
private $_useDiskCaching = false;
|
||||||
private $_imageTypes = array();
|
private $_imageTypes = array();
|
||||||
private $_objectTypes = array();
|
private $_objectTypes = array();
|
||||||
|
|
||||||
public function __construct(PHPWord $PHPWord = null) {
|
public function __construct(PHPWord $PHPWord = null)
|
||||||
$this->_document = $PHPWord;
|
{
|
||||||
|
$this->_document = $PHPWord;
|
||||||
|
|
||||||
$this->_diskCachingDirectory = './';
|
$this->_diskCachingDirectory = './';
|
||||||
|
|
||||||
$this->_writerParts['contenttypes'] = new PHPWord_Writer_Word2007_ContentTypes();
|
$this->_writerParts['contenttypes'] = new PHPWord_Writer_Word2007_ContentTypes();
|
||||||
$this->_writerParts['rels'] = new PHPWord_Writer_Word2007_Rels();
|
$this->_writerParts['rels'] = new PHPWord_Writer_Word2007_Rels();
|
||||||
$this->_writerParts['docprops'] = new PHPWord_Writer_Word2007_DocProps();
|
$this->_writerParts['docprops'] = new PHPWord_Writer_Word2007_DocProps();
|
||||||
$this->_writerParts['documentrels'] = new PHPWord_Writer_Word2007_DocumentRels();
|
$this->_writerParts['documentrels'] = new PHPWord_Writer_Word2007_DocumentRels();
|
||||||
$this->_writerParts['document'] = new PHPWord_Writer_Word2007_Document();
|
$this->_writerParts['document'] = new PHPWord_Writer_Word2007_Document();
|
||||||
$this->_writerParts['styles'] = new PHPWord_Writer_Word2007_Styles();
|
$this->_writerParts['styles'] = new PHPWord_Writer_Word2007_Styles();
|
||||||
$this->_writerParts['header'] = new PHPWord_Writer_Word2007_Header();
|
$this->_writerParts['header'] = new PHPWord_Writer_Word2007_Header();
|
||||||
$this->_writerParts['footer'] = new PHPWord_Writer_Word2007_Footer();
|
$this->_writerParts['footer'] = new PHPWord_Writer_Word2007_Footer();
|
||||||
|
|
||||||
foreach($this->_writerParts as $writer) {
|
foreach ($this->_writerParts as $writer) {
|
||||||
$writer->setParentWriter($this);
|
$writer->setParentWriter($this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function save($pFilename = null) {
|
public function save($pFilename = null)
|
||||||
if(!is_null($this->_document)) {
|
{
|
||||||
|
if (!is_null($this->_document)) {
|
||||||
|
|
||||||
// If $pFilename is php://output or php://stdout, make it a temporary file...
|
// If $pFilename is php://output or php://stdout, make it a temporary file...
|
||||||
$originalFilename = $pFilename;
|
$originalFilename = $pFilename;
|
||||||
if(strtolower($pFilename) == 'php://output' || strtolower($pFilename) == 'php://stdout') {
|
if (strtolower($pFilename) == 'php://output' || strtolower($pFilename) == 'php://stdout') {
|
||||||
$pFilename = @tempnam('./', 'phppttmp');
|
$pFilename = @tempnam('./', 'phppttmp');
|
||||||
if($pFilename == '') {
|
if ($pFilename == '') {
|
||||||
$pFilename = $originalFilename;
|
$pFilename = $originalFilename;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create new ZIP file and open it for writing
|
// Create new ZIP file and open it for writing
|
||||||
$objZip = new ZipArchive();
|
$objZip = new ZipArchive();
|
||||||
|
|
||||||
// Try opening the ZIP file
|
// Try opening the ZIP file
|
||||||
if($objZip->open($pFilename, ZIPARCHIVE::OVERWRITE) !== true) {
|
if ($objZip->open($pFilename, ZIPARCHIVE::OVERWRITE) !== true) {
|
||||||
if($objZip->open($pFilename, ZIPARCHIVE::CREATE) !== true) {
|
if ($objZip->open($pFilename, ZIPARCHIVE::CREATE) !== true) {
|
||||||
throw new Exception("Could not open " . $pFilename . " for writing.");
|
throw new Exception("Could not open " . $pFilename . " for writing.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$sectionElements = array();
|
$sectionElements = array();
|
||||||
$_secElements = PHPWord_Media::getSectionMediaElements();
|
$_secElements = PHPWord_Media::getSectionMediaElements();
|
||||||
foreach($_secElements as $element) { // loop through section media elements
|
foreach ($_secElements as $element) { // loop through section media elements
|
||||||
if($element['type'] != 'hyperlink') {
|
if ($element['type'] != 'hyperlink') {
|
||||||
$this->_addFileToPackage($objZip, $element);
|
$this->_addFileToPackage($objZip, $element);
|
||||||
}
|
}
|
||||||
$sectionElements[] = $element;
|
$sectionElements[] = $element;
|
||||||
}
|
}
|
||||||
|
|
||||||
$_hdrElements = PHPWord_Media::getHeaderMediaElements();
|
$_hdrElements = PHPWord_Media::getHeaderMediaElements();
|
||||||
foreach($_hdrElements as $_headerFile => $_hdrMedia) { // loop through headers
|
foreach ($_hdrElements as $_headerFile => $_hdrMedia) { // loop through headers
|
||||||
if(count($_hdrMedia) > 0) {
|
if (count($_hdrMedia) > 0) {
|
||||||
$objZip->addFromString('word/_rels/'.$_headerFile.'.xml.rels', $this->getWriterPart('documentrels')->writeHeaderFooterRels($_hdrMedia));
|
$objZip->addFromString('word/_rels/' . $_headerFile . '.xml.rels', $this->getWriterPart('documentrels')->writeHeaderFooterRels($_hdrMedia));
|
||||||
foreach($_hdrMedia as $element) { // loop through header media elements
|
foreach ($_hdrMedia as $element) { // loop through header media elements
|
||||||
$this->_addFileToPackage($objZip, $element);
|
$this->_addFileToPackage($objZip, $element);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$_ftrElements = PHPWord_Media::getFooterMediaElements();
|
$_ftrElements = PHPWord_Media::getFooterMediaElements();
|
||||||
foreach($_ftrElements as $_footerFile => $_ftrMedia) { // loop through footers
|
foreach ($_ftrElements as $_footerFile => $_ftrMedia) { // loop through footers
|
||||||
if(count($_ftrMedia) > 0) {
|
if (count($_ftrMedia) > 0) {
|
||||||
$objZip->addFromString('word/_rels/'.$_footerFile.'.xml.rels', $this->getWriterPart('documentrels')->writeHeaderFooterRels($_ftrMedia));
|
$objZip->addFromString('word/_rels/' . $_footerFile . '.xml.rels', $this->getWriterPart('documentrels')->writeHeaderFooterRels($_ftrMedia));
|
||||||
foreach($_ftrMedia as $element) { // loop through footers media elements
|
foreach ($_ftrMedia as $element) { // loop through footers media elements
|
||||||
$this->_addFileToPackage($objZip, $element);
|
$this->_addFileToPackage($objZip, $element);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$_cHdrs = 0;
|
||||||
|
$_cFtrs = 0;
|
||||||
|
$rID = PHPWord_Media::countSectionMediaElements() + 6;
|
||||||
|
$_sections = $this->_document->getSections();
|
||||||
|
|
||||||
$_cHdrs = 0;
|
foreach ($_sections as $section) {
|
||||||
$_cFtrs = 0;
|
$_header = $section->getHeader();
|
||||||
$rID = PHPWord_Media::countSectionMediaElements() + 6;
|
if (!is_null($_header)) {
|
||||||
$_sections = $this->_document->getSections();
|
$_cHdrs++;
|
||||||
|
$_header->setRelationId(++$rID);
|
||||||
|
$_headerCount = $_header->getHeaderCount();
|
||||||
|
$_headerFile = 'header' . $_headerCount . '.xml';
|
||||||
|
$sectionElements[] = array('target' => $_headerFile, 'type' => 'header', 'rID' => $rID);
|
||||||
|
$objZip->addFromString('word/' . $_headerFile, $this->getWriterPart('header')->writeHeader($_header));
|
||||||
|
}
|
||||||
|
|
||||||
foreach($_sections as $section) {
|
$_footer = $section->getFooter();
|
||||||
$_header = $section->getHeader();
|
if (!is_null($_footer)) {
|
||||||
if(!is_null($_header)) {
|
$_cFtrs++;
|
||||||
$_cHdrs++;
|
$_footer->setRelationId(++$rID);
|
||||||
$_header->setRelationId(++$rID);
|
$_footerCount = $_footer->getFooterCount();
|
||||||
$_headerCount = $_header->getHeaderCount();
|
$_footerFile = 'footer' . $_footerCount . '.xml';
|
||||||
$_headerFile = 'header'.$_headerCount.'.xml';
|
$sectionElements[] = array('target' => $_footerFile, 'type' => 'footer', 'rID' => $rID);
|
||||||
$sectionElements[] = array('target'=>$_headerFile, 'type'=>'header', 'rID'=>$rID);
|
$objZip->addFromString('word/' . $_footerFile, $this->getWriterPart('footer')->writeFooter($_footer));
|
||||||
$objZip->addFromString('word/'.$_headerFile, $this->getWriterPart('header')->writeHeader($_header));
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$_footer = $section->getFooter();
|
// build docx file
|
||||||
if(!is_null($_footer)) {
|
// Write dynamic files
|
||||||
$_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('[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('_rels/.rels', $this->getWriterPart('rels')->writeRelationships($this->_document));
|
||||||
$objZip->addFromString('docProps/app.xml', $this->getWriterPart('docprops')->writeDocPropsApp($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('docProps/core.xml', $this->getWriterPart('docprops')->writeDocPropsCore($this->_document));
|
||||||
$objZip->addFromString('word/document.xml', $this->getWriterPart('document')->writeDocument($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/_rels/document.xml.rels', $this->getWriterPart('documentrels')->writeDocumentRels($sectionElements));
|
||||||
$objZip->addFromString('word/styles.xml', $this->getWriterPart('styles')->writeStyles($this->_document));
|
$objZip->addFromString('word/styles.xml', $this->getWriterPart('styles')->writeStyles($this->_document));
|
||||||
|
|
||||||
// Write static files
|
// Write static files
|
||||||
$objZip->addFile(PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/numbering.xml', 'word/numbering.xml');
|
$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/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/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/webSettings.xml', 'word/webSettings.xml');
|
||||||
$objZip->addFile(PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/fontTable.xml', 'word/fontTable.xml');
|
$objZip->addFile(PHPWORD_BASE_PATH . 'PHPWord/_staticDocParts/fontTable.xml', 'word/fontTable.xml');
|
||||||
|
|
||||||
|
|
||||||
// Close file
|
// Close file
|
||||||
if($objZip->close() === false) {
|
if ($objZip->close() === false) {
|
||||||
throw new Exception("Could not close zip file $pFilename.");
|
throw new Exception("Could not close zip file $pFilename.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// If a temporary file was used, copy it to the correct file stream
|
// If a temporary file was used, copy it to the correct file stream
|
||||||
if($originalFilename != $pFilename) {
|
if ($originalFilename != $pFilename) {
|
||||||
if (copy($pFilename, $originalFilename) === false) {
|
if (copy($pFilename, $originalFilename) === false) {
|
||||||
throw new Exception("Could not copy temporary zip file $pFilename to $originalFilename.");
|
throw new Exception("Could not copy temporary zip file $pFilename to $originalFilename.");
|
||||||
}
|
}
|
||||||
@unlink($pFilename);
|
@unlink($pFilename);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new Exception("PHPWord object unassigned.");
|
throw new Exception("PHPWord object unassigned.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function _chkContentTypes($src) {
|
private function _chkContentTypes($src)
|
||||||
$srcInfo = pathinfo($src);
|
{
|
||||||
$extension = strtolower($srcInfo['extension']);
|
$srcInfo = pathinfo($src);
|
||||||
if(substr($extension, 0, 3) == 'php') {
|
$extension = strtolower($srcInfo['extension']);
|
||||||
$extension = 'php';
|
if (substr($extension, 0, 3) == 'php') {
|
||||||
}
|
$extension = 'php';
|
||||||
$_supportedImageTypes = array('jpg', 'jpeg', 'gif', 'png', 'bmp', 'tif', 'tiff', 'php');
|
}
|
||||||
|
$_supportedImageTypes = array('jpg', 'jpeg', 'gif', 'png', 'bmp', 'tif', 'tiff', 'php');
|
||||||
|
|
||||||
if(in_array($extension, $_supportedImageTypes)) {
|
if (in_array($extension, $_supportedImageTypes)) {
|
||||||
$imagedata = getimagesize($src);
|
$imagedata = getimagesize($src);
|
||||||
$imagetype = image_type_to_mime_type($imagedata[2]);
|
$imagetype = image_type_to_mime_type($imagedata[2]);
|
||||||
$imageext = image_type_to_extension($imagedata[2]);
|
$imageext = image_type_to_extension($imagedata[2]);
|
||||||
$imageext = str_replace('.', '', $imageext);
|
$imageext = str_replace('.', '', $imageext);
|
||||||
if($imageext == 'jpeg') $imageext = 'jpg';
|
if ($imageext == 'jpeg') $imageext = 'jpg';
|
||||||
|
|
||||||
if(!in_array($imagetype, $this->_imageTypes)) {
|
if (!in_array($imagetype, $this->_imageTypes)) {
|
||||||
$this->_imageTypes[$imageext] = $imagetype;
|
$this->_imageTypes[$imageext] = $imagetype;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if(!in_array($extension, $this->_objectTypes)) {
|
if (!in_array($extension, $this->_objectTypes)) {
|
||||||
$this->_objectTypes[] = $extension;
|
$this->_objectTypes[] = $extension;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getWriterPart($pPartName = '') {
|
public function getWriterPart($pPartName = '')
|
||||||
if ($pPartName != '' && isset($this->_writerParts[strtolower($pPartName)])) {
|
{
|
||||||
return $this->_writerParts[strtolower($pPartName)];
|
if ($pPartName != '' && isset($this->_writerParts[strtolower($pPartName)])) {
|
||||||
} else {
|
return $this->_writerParts[strtolower($pPartName)];
|
||||||
return null;
|
} else {
|
||||||
}
|
return null;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function getUseDiskCaching() {
|
public function getUseDiskCaching()
|
||||||
return $this->_useDiskCaching;
|
{
|
||||||
}
|
return $this->_useDiskCaching;
|
||||||
|
}
|
||||||
|
|
||||||
public function setUseDiskCaching($pValue = false, $pDirectory = null) {
|
public function setUseDiskCaching($pValue = false, $pDirectory = null)
|
||||||
$this->_useDiskCaching = $pValue;
|
{
|
||||||
|
$this->_useDiskCaching = $pValue;
|
||||||
|
|
||||||
if (!is_null($pDirectory)) {
|
if (!is_null($pDirectory)) {
|
||||||
if (is_dir($pDirectory)) {
|
if (is_dir($pDirectory)) {
|
||||||
$this->_diskCachingDirectory = $pDirectory;
|
$this->_diskCachingDirectory = $pDirectory;
|
||||||
} else {
|
} else {
|
||||||
throw new Exception("Directory does not exist: $pDirectory");
|
throw new Exception("Directory does not exist: $pDirectory");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function _addFileToPackage($objZip, $element) {
|
private function _addFileToPackage($objZip, $element)
|
||||||
if(isset($element['isMemImage']) && $element['isMemImage']) {
|
{
|
||||||
$image = call_user_func($element['createfunction'], $element['source']);
|
if (isset($element['isMemImage']) && $element['isMemImage']) {
|
||||||
ob_start();
|
$image = call_user_func($element['createfunction'], $element['source']);
|
||||||
call_user_func($element['imagefunction'], $image);
|
ob_start();
|
||||||
$imageContents = ob_get_contents();
|
call_user_func($element['imagefunction'], $image);
|
||||||
ob_end_clean();
|
$imageContents = ob_get_contents();
|
||||||
$objZip->addFromString('word/'.$element['target'], $imageContents);
|
ob_end_clean();
|
||||||
imagedestroy($image);
|
$objZip->addFromString('word/' . $element['target'], $imageContents);
|
||||||
|
imagedestroy($image);
|
||||||
|
|
||||||
$this->_chkContentTypes($element['source']);
|
$this->_chkContentTypes($element['source']);
|
||||||
} else {
|
} else {
|
||||||
$objZip->addFile($element['source'], 'word/'.$element['target']);
|
$objZip->addFile($element['source'], 'word/' . $element['target']);
|
||||||
$this->_chkContentTypes($element['source']);
|
$this->_chkContentTypes($element['source']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -26,160 +26,165 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
class PHPWord_Writer_Word2007_ContentTypes extends PHPWord_Writer_Word2007_WriterPart {
|
class PHPWord_Writer_Word2007_ContentTypes extends PHPWord_Writer_Word2007_WriterPart
|
||||||
|
{
|
||||||
|
|
||||||
public function writeContentTypes($_imageTypes, $_objectTypes, $_cHdrs, $_cFtrs) {
|
public function writeContentTypes($_imageTypes, $_objectTypes, $_cHdrs, $_cFtrs)
|
||||||
// Create XML writer
|
{
|
||||||
$objWriter = null;
|
// Create XML writer
|
||||||
if ($this->getParentWriter()->getUseDiskCaching()) {
|
$objWriter = null;
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
if ($this->getParentWriter()->getUseDiskCaching()) {
|
||||||
} else {
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
} else {
|
||||||
}
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
||||||
|
}
|
||||||
|
|
||||||
// XML header
|
// XML header
|
||||||
$objWriter->startDocument('1.0', 'UTF-8', 'yes');
|
$objWriter->startDocument('1.0', 'UTF-8', 'yes');
|
||||||
|
|
||||||
// Types
|
// Types
|
||||||
$objWriter->startElement('Types');
|
$objWriter->startElement('Types');
|
||||||
$objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/content-types');
|
$objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/content-types');
|
||||||
|
|
||||||
// Rels
|
// Rels
|
||||||
$this->_writeDefaultContentType(
|
$this->_writeDefaultContentType(
|
||||||
$objWriter, 'rels', 'application/vnd.openxmlformats-package.relationships+xml'
|
$objWriter, 'rels', 'application/vnd.openxmlformats-package.relationships+xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
// XML
|
// XML
|
||||||
$this->_writeDefaultContentType(
|
$this->_writeDefaultContentType(
|
||||||
$objWriter, 'xml', 'application/xml'
|
$objWriter, 'xml', 'application/xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Add media content-types
|
// Add media content-types
|
||||||
foreach($_imageTypes as $key => $value) {
|
foreach ($_imageTypes as $key => $value) {
|
||||||
$this->_writeDefaultContentType($objWriter, $key, $value);
|
$this->_writeDefaultContentType($objWriter, $key, $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add embedding content-types
|
// Add embedding content-types
|
||||||
if(count($_objectTypes) > 0) {
|
if (count($_objectTypes) > 0) {
|
||||||
$this->_writeDefaultContentType($objWriter, 'bin', 'application/vnd.openxmlformats-officedocument.oleObject');
|
$this->_writeDefaultContentType($objWriter, 'bin', 'application/vnd.openxmlformats-officedocument.oleObject');
|
||||||
}
|
}
|
||||||
|
|
||||||
// DocProps
|
// DocProps
|
||||||
$this->_writeOverrideContentType(
|
$this->_writeOverrideContentType(
|
||||||
$objWriter, '/docProps/app.xml', 'application/vnd.openxmlformats-officedocument.extended-properties+xml'
|
$objWriter, '/docProps/app.xml', 'application/vnd.openxmlformats-officedocument.extended-properties+xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->_writeOverrideContentType(
|
$this->_writeOverrideContentType(
|
||||||
$objWriter, '/docProps/core.xml', 'application/vnd.openxmlformats-package.core-properties+xml'
|
$objWriter, '/docProps/core.xml', 'application/vnd.openxmlformats-package.core-properties+xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Document
|
// Document
|
||||||
$this->_writeOverrideContentType(
|
$this->_writeOverrideContentType(
|
||||||
$objWriter, '/word/document.xml', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml'
|
$objWriter, '/word/document.xml', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Styles
|
// Styles
|
||||||
$this->_writeOverrideContentType(
|
$this->_writeOverrideContentType(
|
||||||
$objWriter, '/word/styles.xml', 'application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml'
|
$objWriter, '/word/styles.xml', 'application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Numbering
|
// Numbering
|
||||||
$this->_writeOverrideContentType(
|
$this->_writeOverrideContentType(
|
||||||
$objWriter, '/word/numbering.xml', 'application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml'
|
$objWriter, '/word/numbering.xml', 'application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
$this->_writeOverrideContentType(
|
$this->_writeOverrideContentType(
|
||||||
$objWriter, '/word/settings.xml', 'application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml'
|
$objWriter, '/word/settings.xml', 'application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Theme1
|
// Theme1
|
||||||
$this->_writeOverrideContentType(
|
$this->_writeOverrideContentType(
|
||||||
$objWriter, '/word/theme/theme1.xml', 'application/vnd.openxmlformats-officedocument.theme+xml'
|
$objWriter, '/word/theme/theme1.xml', 'application/vnd.openxmlformats-officedocument.theme+xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
// WebSettings
|
// WebSettings
|
||||||
$this->_writeOverrideContentType(
|
$this->_writeOverrideContentType(
|
||||||
$objWriter, '/word/webSettings.xml', 'application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml'
|
$objWriter, '/word/webSettings.xml', 'application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Font Table
|
// Font Table
|
||||||
$this->_writeOverrideContentType(
|
$this->_writeOverrideContentType(
|
||||||
$objWriter, '/word/fontTable.xml', 'application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml'
|
$objWriter, '/word/fontTable.xml', 'application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
for($i=1; $i<=$_cHdrs; $i++) {
|
for ($i = 1; $i <= $_cHdrs; $i++) {
|
||||||
$this->_writeOverrideContentType(
|
$this->_writeOverrideContentType(
|
||||||
$objWriter, '/word/header'.$i.'.xml', 'application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml'
|
$objWriter, '/word/header' . $i . '.xml', 'application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
for($i=1; $i<=$_cFtrs; $i++) {
|
for ($i = 1; $i <= $_cFtrs; $i++) {
|
||||||
$this->_writeOverrideContentType(
|
$this->_writeOverrideContentType(
|
||||||
$objWriter, '/word/footer'.$i.'.xml', 'application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml'
|
$objWriter, '/word/footer' . $i . '.xml', 'application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// Return
|
// Return
|
||||||
return $objWriter->getData();
|
return $objWriter->getData();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get image mime type
|
* Get image mime type
|
||||||
*
|
*
|
||||||
* @param string $pFile Filename
|
* @param string $pFile Filename
|
||||||
* @return string Mime Type
|
* @return string Mime Type
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
private function _getImageMimeType($pFile = '') {
|
private function _getImageMimeType($pFile = '')
|
||||||
if(PHPWord_Shared_File::file_exists($pFile)) {
|
{
|
||||||
$image = getimagesize($pFile);
|
if (PHPWord_Shared_File::file_exists($pFile)) {
|
||||||
return image_type_to_mime_type($image[2]);
|
$image = getimagesize($pFile);
|
||||||
} else {
|
return image_type_to_mime_type($image[2]);
|
||||||
throw new Exception("File $pFile does not exist");
|
} else {
|
||||||
}
|
throw new Exception("File $pFile does not exist");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write Default content type
|
* Write Default content type
|
||||||
*
|
*
|
||||||
* @param PHPWord_Shared_XMLWriter $objWriter XML Writer
|
* @param PHPWord_Shared_XMLWriter $objWriter XML Writer
|
||||||
* @param string $pPartname Part name
|
* @param string $pPartname Part name
|
||||||
* @param string $pContentType Content type
|
* @param string $pContentType Content type
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
private function _writeDefaultContentType(PHPWord_Shared_XMLWriter $objWriter = null, $pPartname = '', $pContentType = '') {
|
private function _writeDefaultContentType(PHPWord_Shared_XMLWriter $objWriter = null, $pPartname = '', $pContentType = '')
|
||||||
if($pPartname != '' && $pContentType != '') {
|
{
|
||||||
// Write content type
|
if ($pPartname != '' && $pContentType != '') {
|
||||||
$objWriter->startElement('Default');
|
// Write content type
|
||||||
$objWriter->writeAttribute('Extension', $pPartname);
|
$objWriter->startElement('Default');
|
||||||
$objWriter->writeAttribute('ContentType', $pContentType);
|
$objWriter->writeAttribute('Extension', $pPartname);
|
||||||
$objWriter->endElement();
|
$objWriter->writeAttribute('ContentType', $pContentType);
|
||||||
} else {
|
$objWriter->endElement();
|
||||||
throw new Exception("Invalid parameters passed.");
|
} else {
|
||||||
}
|
throw new Exception("Invalid parameters passed.");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write Override content type
|
* Write Override content type
|
||||||
*
|
*
|
||||||
* @param PHPPowerPoint_Shared_XMLWriter $objWriter XML Writer
|
* @param PHPPowerPoint_Shared_XMLWriter $objWriter XML Writer
|
||||||
* @param string $pPartname Part name
|
* @param string $pPartname Part name
|
||||||
* @param string $pContentType Content type
|
* @param string $pContentType Content type
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
private function _writeOverrideContentType(PHPWord_Shared_XMLWriter $objWriter = null, $pPartname = '', $pContentType = '') {
|
private function _writeOverrideContentType(PHPWord_Shared_XMLWriter $objWriter = null, $pPartname = '', $pContentType = '')
|
||||||
if($pPartname != '' && $pContentType != '') {
|
{
|
||||||
// Write content type
|
if ($pPartname != '' && $pContentType != '') {
|
||||||
$objWriter->startElement('Override');
|
// Write content type
|
||||||
$objWriter->writeAttribute('PartName', $pPartname);
|
$objWriter->startElement('Override');
|
||||||
$objWriter->writeAttribute('ContentType', $pContentType);
|
$objWriter->writeAttribute('PartName', $pPartname);
|
||||||
$objWriter->endElement();
|
$objWriter->writeAttribute('ContentType', $pContentType);
|
||||||
} else {
|
$objWriter->endElement();
|
||||||
throw new Exception("Invalid parameters passed.");
|
} else {
|
||||||
}
|
throw new Exception("Invalid parameters passed.");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,155 +26,158 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
class PHPWord_Writer_Word2007_DocProps extends PHPWord_Writer_Word2007_WriterPart {
|
class PHPWord_Writer_Word2007_DocProps extends PHPWord_Writer_Word2007_WriterPart
|
||||||
|
{
|
||||||
|
|
||||||
public function writeDocPropsApp(PHPWord $pPHPWord = null) {
|
public function writeDocPropsApp(PHPWord $pPHPWord = null)
|
||||||
// Create XML writer
|
{
|
||||||
$objWriter = null;
|
// Create XML writer
|
||||||
if ($this->getParentWriter()->getUseDiskCaching()) {
|
$objWriter = null;
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
if ($this->getParentWriter()->getUseDiskCaching()) {
|
||||||
} else {
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
} else {
|
||||||
}
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
||||||
|
}
|
||||||
|
|
||||||
// XML header
|
// XML header
|
||||||
$objWriter->startDocument('1.0','UTF-8','yes');
|
$objWriter->startDocument('1.0', 'UTF-8', 'yes');
|
||||||
|
|
||||||
// Properties
|
// Properties
|
||||||
$objWriter->startElement('Properties');
|
$objWriter->startElement('Properties');
|
||||||
$objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties');
|
$objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties');
|
||||||
$objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes');
|
$objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes');
|
||||||
|
|
||||||
// Application
|
// Application
|
||||||
$objWriter->writeElement('Application', 'Microsoft Office Word');
|
$objWriter->writeElement('Application', 'Microsoft Office Word');
|
||||||
|
|
||||||
// ScaleCrop
|
// ScaleCrop
|
||||||
$objWriter->writeElement('ScaleCrop', 'false');
|
$objWriter->writeElement('ScaleCrop', 'false');
|
||||||
|
|
||||||
// HeadingPairs
|
// HeadingPairs
|
||||||
$objWriter->startElement('HeadingPairs');
|
$objWriter->startElement('HeadingPairs');
|
||||||
|
|
||||||
// Vector
|
// Vector
|
||||||
$objWriter->startElement('vt:vector');
|
$objWriter->startElement('vt:vector');
|
||||||
$objWriter->writeAttribute('size', '4');
|
$objWriter->writeAttribute('size', '4');
|
||||||
$objWriter->writeAttribute('baseType', 'variant');
|
$objWriter->writeAttribute('baseType', 'variant');
|
||||||
|
|
||||||
// Variant
|
// Variant
|
||||||
$objWriter->startElement('vt:variant');
|
$objWriter->startElement('vt:variant');
|
||||||
$objWriter->writeElement('vt:lpstr', 'Theme');
|
$objWriter->writeElement('vt:lpstr', 'Theme');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// Variant
|
// Variant
|
||||||
$objWriter->startElement('vt:variant');
|
$objWriter->startElement('vt:variant');
|
||||||
$objWriter->writeElement('vt:i4', '1');
|
$objWriter->writeElement('vt:i4', '1');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// Variant
|
// Variant
|
||||||
$objWriter->startElement('vt:variant');
|
$objWriter->startElement('vt:variant');
|
||||||
$objWriter->writeElement('vt:lpstr', 'Slide Titles');
|
$objWriter->writeElement('vt:lpstr', 'Slide Titles');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// Variant
|
// Variant
|
||||||
$objWriter->startElement('vt:variant');
|
$objWriter->startElement('vt:variant');
|
||||||
$objWriter->writeElement('vt:i4', '1');
|
$objWriter->writeElement('vt:i4', '1');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// TitlesOfParts
|
// TitlesOfParts
|
||||||
$objWriter->startElement('TitlesOfParts');
|
$objWriter->startElement('TitlesOfParts');
|
||||||
|
|
||||||
// Vector
|
// Vector
|
||||||
$objWriter->startElement('vt:vector');
|
$objWriter->startElement('vt:vector');
|
||||||
$objWriter->writeAttribute('size', '1');
|
$objWriter->writeAttribute('size', '1');
|
||||||
$objWriter->writeAttribute('baseType', 'lpstr');
|
$objWriter->writeAttribute('baseType', 'lpstr');
|
||||||
|
|
||||||
$objWriter->writeElement('vt:lpstr', 'Office Theme');
|
$objWriter->writeElement('vt:lpstr', 'Office Theme');
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// Company
|
// Company
|
||||||
$objWriter->writeElement('Company', $pPHPWord->getProperties()->getCompany());
|
$objWriter->writeElement('Company', $pPHPWord->getProperties()->getCompany());
|
||||||
|
|
||||||
// LinksUpToDate
|
// LinksUpToDate
|
||||||
$objWriter->writeElement('LinksUpToDate', 'false');
|
$objWriter->writeElement('LinksUpToDate', 'false');
|
||||||
|
|
||||||
// SharedDoc
|
// SharedDoc
|
||||||
$objWriter->writeElement('SharedDoc', 'false');
|
$objWriter->writeElement('SharedDoc', 'false');
|
||||||
|
|
||||||
// HyperlinksChanged
|
// HyperlinksChanged
|
||||||
$objWriter->writeElement('HyperlinksChanged', 'false');
|
$objWriter->writeElement('HyperlinksChanged', 'false');
|
||||||
|
|
||||||
// AppVersion
|
// AppVersion
|
||||||
$objWriter->writeElement('AppVersion', '12.0000');
|
$objWriter->writeElement('AppVersion', '12.0000');
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// Return
|
// Return
|
||||||
return $objWriter->getData();
|
return $objWriter->getData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function writeDocPropsCore(PHPWord $pPHPWord = null) {
|
public function writeDocPropsCore(PHPWord $pPHPWord = null)
|
||||||
// Create XML writer
|
{
|
||||||
$objWriter = null;
|
// Create XML writer
|
||||||
if ($this->getParentWriter()->getUseDiskCaching()) {
|
$objWriter = null;
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
if ($this->getParentWriter()->getUseDiskCaching()) {
|
||||||
} else {
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
} else {
|
||||||
}
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
||||||
|
}
|
||||||
|
|
||||||
// XML header
|
// XML header
|
||||||
$objWriter->startDocument('1.0','UTF-8','yes');
|
$objWriter->startDocument('1.0', 'UTF-8', 'yes');
|
||||||
|
|
||||||
// cp:coreProperties
|
// cp:coreProperties
|
||||||
$objWriter->startElement('cp:coreProperties');
|
$objWriter->startElement('cp:coreProperties');
|
||||||
$objWriter->writeAttribute('xmlns:cp', 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties');
|
$objWriter->writeAttribute('xmlns:cp', 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties');
|
||||||
$objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
|
$objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
|
||||||
$objWriter->writeAttribute('xmlns:dcterms', 'http://purl.org/dc/terms/');
|
$objWriter->writeAttribute('xmlns:dcterms', 'http://purl.org/dc/terms/');
|
||||||
$objWriter->writeAttribute('xmlns:dcmitype', 'http://purl.org/dc/dcmitype/');
|
$objWriter->writeAttribute('xmlns:dcmitype', 'http://purl.org/dc/dcmitype/');
|
||||||
$objWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
|
$objWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
|
||||||
|
|
||||||
// dc:creator
|
// dc:creator
|
||||||
$objWriter->writeElement('dc:creator', $pPHPWord->getProperties()->getCreator());
|
$objWriter->writeElement('dc:creator', $pPHPWord->getProperties()->getCreator());
|
||||||
|
|
||||||
// cp:lastModifiedBy
|
// cp:lastModifiedBy
|
||||||
$objWriter->writeElement('cp:lastModifiedBy', $pPHPWord->getProperties()->getLastModifiedBy());
|
$objWriter->writeElement('cp:lastModifiedBy', $pPHPWord->getProperties()->getLastModifiedBy());
|
||||||
|
|
||||||
// dcterms:created
|
// dcterms:created
|
||||||
$objWriter->startElement('dcterms:created');
|
$objWriter->startElement('dcterms:created');
|
||||||
$objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
|
$objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
|
||||||
$objWriter->writeRaw(date(DATE_W3C, $pPHPWord->getProperties()->getCreated()));
|
$objWriter->writeRaw(date(DATE_W3C, $pPHPWord->getProperties()->getCreated()));
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// dcterms:modified
|
// dcterms:modified
|
||||||
$objWriter->startElement('dcterms:modified');
|
$objWriter->startElement('dcterms:modified');
|
||||||
$objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
|
$objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
|
||||||
$objWriter->writeRaw(date(DATE_W3C, $pPHPWord->getProperties()->getModified()));
|
$objWriter->writeRaw(date(DATE_W3C, $pPHPWord->getProperties()->getModified()));
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// dc:title
|
// dc:title
|
||||||
$objWriter->writeElement('dc:title', $pPHPWord->getProperties()->getTitle());
|
$objWriter->writeElement('dc:title', $pPHPWord->getProperties()->getTitle());
|
||||||
|
|
||||||
// dc:description
|
// dc:description
|
||||||
$objWriter->writeElement('dc:description', $pPHPWord->getProperties()->getDescription());
|
$objWriter->writeElement('dc:description', $pPHPWord->getProperties()->getDescription());
|
||||||
|
|
||||||
// dc:subject
|
// dc:subject
|
||||||
$objWriter->writeElement('dc:subject', $pPHPWord->getProperties()->getSubject());
|
$objWriter->writeElement('dc:subject', $pPHPWord->getProperties()->getSubject());
|
||||||
|
|
||||||
// cp:keywords
|
// cp:keywords
|
||||||
$objWriter->writeElement('cp:keywords', $pPHPWord->getProperties()->getKeywords());
|
$objWriter->writeElement('cp:keywords', $pPHPWord->getProperties()->getKeywords());
|
||||||
|
|
||||||
// cp:category
|
// cp:category
|
||||||
$objWriter->writeElement('cp:category', $pPHPWord->getProperties()->getCategory());
|
$objWriter->writeElement('cp:category', $pPHPWord->getProperties()->getCategory());
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// Return
|
// Return
|
||||||
return $objWriter->getData();
|
return $objWriter->getData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,428 +26,437 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
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) {
|
public function writeDocument(PHPWord $pPHPWord = null)
|
||||||
// Create XML writer
|
{
|
||||||
|
// Create XML writer
|
||||||
|
|
||||||
if($this->getParentWriter()->getUseDiskCaching()) {
|
if ($this->getParentWriter()->getUseDiskCaching()) {
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
||||||
} else {
|
} else {
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
// XML header
|
// XML header
|
||||||
$objWriter->startDocument('1.0','UTF-8','yes');
|
$objWriter->startDocument('1.0', 'UTF-8', 'yes');
|
||||||
|
|
||||||
// w:document
|
// w:document
|
||||||
$objWriter->startElement('w:document');
|
$objWriter->startElement('w:document');
|
||||||
|
|
||||||
$objWriter->writeAttribute('xmlns:ve', 'http://schemas.openxmlformats.org/markup-compatibility/2006');
|
$objWriter->writeAttribute('xmlns:ve', 'http://schemas.openxmlformats.org/markup-compatibility/2006');
|
||||||
$objWriter->writeAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office');
|
$objWriter->writeAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office');
|
||||||
$objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
|
$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:m', 'http://schemas.openxmlformats.org/officeDocument/2006/math');
|
||||||
$objWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml');
|
$objWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml');
|
||||||
$objWriter->writeAttribute('xmlns:wp', 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing');
|
$objWriter->writeAttribute('xmlns:wp', 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing');
|
||||||
$objWriter->writeAttribute('xmlns:w10', 'urn:schemas-microsoft-com:office:word');
|
$objWriter->writeAttribute('xmlns:w10', 'urn:schemas-microsoft-com:office:word');
|
||||||
$objWriter->writeAttribute('xmlns:w', 'http://schemas.openxmlformats.org/wordprocessingml/2006/main');
|
$objWriter->writeAttribute('xmlns:w', 'http://schemas.openxmlformats.org/wordprocessingml/2006/main');
|
||||||
$objWriter->writeAttribute('xmlns:wne', 'http://schemas.microsoft.com/office/word/2006/wordml');
|
$objWriter->writeAttribute('xmlns:wne', 'http://schemas.microsoft.com/office/word/2006/wordml');
|
||||||
|
|
||||||
$objWriter->startElement('w:body');
|
$objWriter->startElement('w:body');
|
||||||
|
|
||||||
$_sections = $pPHPWord->getSections();
|
$_sections = $pPHPWord->getSections();
|
||||||
$countSections = count($_sections);
|
$countSections = count($_sections);
|
||||||
$pSection = 0;
|
$pSection = 0;
|
||||||
|
|
||||||
if($countSections > 0) {
|
if ($countSections > 0) {
|
||||||
foreach($_sections as $section) {
|
foreach ($_sections as $section) {
|
||||||
$pSection++;
|
$pSection++;
|
||||||
|
|
||||||
$_elements = $section->getElements();
|
$_elements = $section->getElements();
|
||||||
|
|
||||||
foreach($_elements as $element) {
|
foreach ($_elements as $element) {
|
||||||
if($element instanceof PHPWord_Section_Text) {
|
if ($element instanceof PHPWord_Section_Text) {
|
||||||
$this->_writeText($objWriter, $element);
|
$this->_writeText($objWriter, $element);
|
||||||
} elseif($element instanceof PHPWord_Section_TextRun) {
|
} elseif ($element instanceof PHPWord_Section_TextRun) {
|
||||||
$this->_writeTextRun($objWriter, $element);
|
$this->_writeTextRun($objWriter, $element);
|
||||||
} elseif($element instanceof PHPWord_Section_Link) {
|
} elseif ($element instanceof PHPWord_Section_Link) {
|
||||||
$this->_writeLink($objWriter, $element);
|
$this->_writeLink($objWriter, $element);
|
||||||
} elseif($element instanceof PHPWord_Section_Title) {
|
} elseif ($element instanceof PHPWord_Section_Title) {
|
||||||
$this->_writeTitle($objWriter, $element);
|
$this->_writeTitle($objWriter, $element);
|
||||||
} elseif($element instanceof PHPWord_Section_TextBreak) {
|
} elseif ($element instanceof PHPWord_Section_TextBreak) {
|
||||||
$this->_writeTextBreak($objWriter);
|
$this->_writeTextBreak($objWriter);
|
||||||
} elseif($element instanceof PHPWord_Section_PageBreak) {
|
} elseif ($element instanceof PHPWord_Section_PageBreak) {
|
||||||
$this->_writePageBreak($objWriter);
|
$this->_writePageBreak($objWriter);
|
||||||
} elseif($element instanceof PHPWord_Section_Table) {
|
} elseif ($element instanceof PHPWord_Section_Table) {
|
||||||
$this->_writeTable($objWriter, $element);
|
$this->_writeTable($objWriter, $element);
|
||||||
} elseif($element instanceof PHPWord_Section_ListItem) {
|
} elseif ($element instanceof PHPWord_Section_ListItem) {
|
||||||
$this->_writeListItem($objWriter, $element);
|
$this->_writeListItem($objWriter, $element);
|
||||||
} elseif($element instanceof PHPWord_Section_Image ||
|
} elseif ($element instanceof PHPWord_Section_Image ||
|
||||||
$element instanceof PHPWord_Section_MemoryImage) {
|
$element instanceof PHPWord_Section_MemoryImage
|
||||||
$this->_writeImage($objWriter, $element);
|
) {
|
||||||
} elseif($element instanceof PHPWord_Section_Object) {
|
$this->_writeImage($objWriter, $element);
|
||||||
$this->_writeObject($objWriter, $element);
|
} elseif ($element instanceof PHPWord_Section_Object) {
|
||||||
} elseif($element instanceof PHPWord_TOC) {
|
$this->_writeObject($objWriter, $element);
|
||||||
$this->_writeTOC($objWriter);
|
} elseif ($element instanceof PHPWord_TOC) {
|
||||||
}
|
$this->_writeTOC($objWriter);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if($pSection == $countSections) {
|
if ($pSection == $countSections) {
|
||||||
$this->_writeEndSection($objWriter, $section);
|
$this->_writeEndSection($objWriter, $section);
|
||||||
} else {
|
} else {
|
||||||
$this->_writeSection($objWriter, $section);
|
$this->_writeSection($objWriter, $section);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$objWriter->endElement(); // End w:body
|
$objWriter->endElement(); // End w:body
|
||||||
$objWriter->endElement(); // End w:document
|
$objWriter->endElement(); // End w:document
|
||||||
|
|
||||||
// Return
|
// Return
|
||||||
return $objWriter->getData();
|
return $objWriter->getData();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function _writeSection(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section $section) {
|
private function _writeSection(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section $section)
|
||||||
$objWriter->startElement('w:p');
|
{
|
||||||
$objWriter->startElement('w:pPr');
|
$objWriter->startElement('w:p');
|
||||||
$this->_writeEndSection($objWriter, $section, 3);
|
$objWriter->startElement('w:pPr');
|
||||||
$objWriter->endElement();
|
$this->_writeEndSection($objWriter, $section, 3);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
$objWriter->endElement();
|
||||||
|
}
|
||||||
|
|
||||||
private function _writeEndSection(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section $section) {
|
private function _writeEndSection(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section $section)
|
||||||
$_settings = $section->getSettings();
|
{
|
||||||
$_header = $section->getHeader();
|
$_settings = $section->getSettings();
|
||||||
$_footer = $section->getFooter();
|
$_header = $section->getHeader();
|
||||||
$pgSzW = $_settings->getPageSizeW();
|
$_footer = $section->getFooter();
|
||||||
$pgSzH = $_settings->getPageSizeH();
|
$pgSzW = $_settings->getPageSizeW();
|
||||||
$orientation = $_settings->getOrientation();
|
$pgSzH = $_settings->getPageSizeH();
|
||||||
|
$orientation = $_settings->getOrientation();
|
||||||
|
|
||||||
$marginTop = $_settings->getMarginTop();
|
$marginTop = $_settings->getMarginTop();
|
||||||
$marginLeft = $_settings->getMarginLeft();
|
$marginLeft = $_settings->getMarginLeft();
|
||||||
$marginRight = $_settings->getMarginRight();
|
$marginRight = $_settings->getMarginRight();
|
||||||
$marginBottom = $_settings->getMarginBottom();
|
$marginBottom = $_settings->getMarginBottom();
|
||||||
|
|
||||||
$borders = $_settings->getBorderSize();
|
$borders = $_settings->getBorderSize();
|
||||||
|
|
||||||
$objWriter->startElement('w:sectPr');
|
$objWriter->startElement('w:sectPr');
|
||||||
|
|
||||||
if(!is_null($_header)) {
|
if (!is_null($_header)) {
|
||||||
$rId = $_header->getRelationId();
|
$rId = $_header->getRelationId();
|
||||||
$objWriter->startElement('w:headerReference');
|
$objWriter->startElement('w:headerReference');
|
||||||
$objWriter->writeAttribute('w:type', 'default');
|
$objWriter->writeAttribute('w:type', 'default');
|
||||||
$objWriter->writeAttribute('r:id', 'rId'.$rId);
|
$objWriter->writeAttribute('r:id', 'rId' . $rId);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!is_null($_footer)) {
|
if (!is_null($_footer)) {
|
||||||
$rId = $_footer->getRelationId();
|
$rId = $_footer->getRelationId();
|
||||||
$objWriter->startElement('w:footerReference');
|
$objWriter->startElement('w:footerReference');
|
||||||
$objWriter->writeAttribute('w:type', 'default');
|
$objWriter->writeAttribute('w:type', 'default');
|
||||||
$objWriter->writeAttribute('r:id', 'rId'.$rId);
|
$objWriter->writeAttribute('r:id', 'rId' . $rId);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
$objWriter->startElement('w:pgSz');
|
$objWriter->startElement('w:pgSz');
|
||||||
$objWriter->writeAttribute('w:w', $pgSzW);
|
$objWriter->writeAttribute('w:w', $pgSzW);
|
||||||
$objWriter->writeAttribute('w:h', $pgSzH);
|
$objWriter->writeAttribute('w:h', $pgSzH);
|
||||||
|
|
||||||
if(!is_null($orientation) && strtolower($orientation) != 'portrait') {
|
if (!is_null($orientation) && strtolower($orientation) != 'portrait') {
|
||||||
$objWriter->writeAttribute('w:orient', $orientation);
|
$objWriter->writeAttribute('w:orient', $orientation);
|
||||||
}
|
}
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->startElement('w:pgMar');
|
$objWriter->startElement('w:pgMar');
|
||||||
$objWriter->writeAttribute('w:top', $marginTop);
|
$objWriter->writeAttribute('w:top', $marginTop);
|
||||||
$objWriter->writeAttribute('w:right', $marginRight);
|
$objWriter->writeAttribute('w:right', $marginRight);
|
||||||
$objWriter->writeAttribute('w:bottom', $marginBottom);
|
$objWriter->writeAttribute('w:bottom', $marginBottom);
|
||||||
$objWriter->writeAttribute('w:left', $marginLeft);
|
$objWriter->writeAttribute('w:left', $marginLeft);
|
||||||
$objWriter->writeAttribute('w:header', '720');
|
$objWriter->writeAttribute('w:header', '720');
|
||||||
$objWriter->writeAttribute('w:footer', '720');
|
$objWriter->writeAttribute('w:footer', '720');
|
||||||
$objWriter->writeAttribute('w:gutter', '0');
|
$objWriter->writeAttribute('w:gutter', '0');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
|
|
||||||
if(!is_null($borders[0]) || !is_null($borders[1]) || !is_null($borders[2]) || !is_null($borders[3])) {
|
if (!is_null($borders[0]) || !is_null($borders[1]) || !is_null($borders[2]) || !is_null($borders[3])) {
|
||||||
$borderColor = $_settings->getBorderColor();
|
$borderColor = $_settings->getBorderColor();
|
||||||
|
|
||||||
$objWriter->startElement('w:pgBorders');
|
$objWriter->startElement('w:pgBorders');
|
||||||
$objWriter->writeAttribute('w:offsetFrom', 'page');
|
$objWriter->writeAttribute('w:offsetFrom', 'page');
|
||||||
|
|
||||||
if(!is_null($borders[0])) {
|
if (!is_null($borders[0])) {
|
||||||
$objWriter->startElement('w:top');
|
$objWriter->startElement('w:top');
|
||||||
$objWriter->writeAttribute('w:val', 'single');
|
$objWriter->writeAttribute('w:val', 'single');
|
||||||
$objWriter->writeAttribute('w:sz', $borders[0]);
|
$objWriter->writeAttribute('w:sz', $borders[0]);
|
||||||
$objWriter->writeAttribute('w:space', '24');
|
$objWriter->writeAttribute('w:space', '24');
|
||||||
$objWriter->writeAttribute('w:color', $borderColor[0]);
|
$objWriter->writeAttribute('w:color', $borderColor[0]);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!is_null($borders[1])) {
|
if (!is_null($borders[1])) {
|
||||||
$objWriter->startElement('w:left');
|
$objWriter->startElement('w:left');
|
||||||
$objWriter->writeAttribute('w:val', 'single');
|
$objWriter->writeAttribute('w:val', 'single');
|
||||||
$objWriter->writeAttribute('w:sz', $borders[1]);
|
$objWriter->writeAttribute('w:sz', $borders[1]);
|
||||||
$objWriter->writeAttribute('w:space', '24');
|
$objWriter->writeAttribute('w:space', '24');
|
||||||
$objWriter->writeAttribute('w:color', $borderColor[1]);
|
$objWriter->writeAttribute('w:color', $borderColor[1]);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!is_null($borders[2])) {
|
if (!is_null($borders[2])) {
|
||||||
$objWriter->startElement('w:right');
|
$objWriter->startElement('w:right');
|
||||||
$objWriter->writeAttribute('w:val', 'single');
|
$objWriter->writeAttribute('w:val', 'single');
|
||||||
$objWriter->writeAttribute('w:sz', $borders[2]);
|
$objWriter->writeAttribute('w:sz', $borders[2]);
|
||||||
$objWriter->writeAttribute('w:space', '24');
|
$objWriter->writeAttribute('w:space', '24');
|
||||||
$objWriter->writeAttribute('w:color', $borderColor[2]);
|
$objWriter->writeAttribute('w:color', $borderColor[2]);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!is_null($borders[3])) {
|
if (!is_null($borders[3])) {
|
||||||
$objWriter->startElement('w:bottom');
|
$objWriter->startElement('w:bottom');
|
||||||
$objWriter->writeAttribute('w:val', 'single');
|
$objWriter->writeAttribute('w:val', 'single');
|
||||||
$objWriter->writeAttribute('w:sz', $borders[3]);
|
$objWriter->writeAttribute('w:sz', $borders[3]);
|
||||||
$objWriter->writeAttribute('w:space', '24');
|
$objWriter->writeAttribute('w:space', '24');
|
||||||
$objWriter->writeAttribute('w:color', $borderColor[3]);
|
$objWriter->writeAttribute('w:color', $borderColor[3]);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$objWriter->startElement('w:cols');
|
$objWriter->startElement('w:cols');
|
||||||
$objWriter->writeAttribute('w:space', '720');
|
$objWriter->writeAttribute('w:space', '720');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function _writePageBreak(PHPWord_Shared_XMLWriter $objWriter = null) {
|
private function _writePageBreak(PHPWord_Shared_XMLWriter $objWriter = null)
|
||||||
$objWriter->startElement('w:p');
|
{
|
||||||
$objWriter->startElement('w:r');
|
$objWriter->startElement('w:p');
|
||||||
$objWriter->startElement('w:br');
|
$objWriter->startElement('w:r');
|
||||||
$objWriter->writeAttribute('w:type', 'page');
|
$objWriter->startElement('w:br');
|
||||||
$objWriter->endElement();
|
$objWriter->writeAttribute('w:type', 'page');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
$objWriter->endElement();
|
||||||
|
}
|
||||||
|
|
||||||
private function _writeListItem(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_ListItem $listItem) {
|
private function _writeListItem(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_ListItem $listItem)
|
||||||
$textObject = $listItem->getTextObject();
|
{
|
||||||
$text = $textObject->getText();
|
$textObject = $listItem->getTextObject();
|
||||||
|
$text = $textObject->getText();
|
||||||
$styleParagraph = $textObject->getParagraphStyle();
|
$styleParagraph = $textObject->getParagraphStyle();
|
||||||
$SpIsObject = ($styleParagraph instanceof PHPWord_Style_Paragraph) ? true : false;
|
$SpIsObject = ($styleParagraph instanceof PHPWord_Style_Paragraph) ? true : false;
|
||||||
|
|
||||||
$depth = $listItem->getDepth();
|
$depth = $listItem->getDepth();
|
||||||
$listType = $listItem->getStyle()->getListType();
|
$listType = $listItem->getStyle()->getListType();
|
||||||
|
|
||||||
$objWriter->startElement('w:p');
|
$objWriter->startElement('w:p');
|
||||||
$objWriter->startElement('w:pPr');
|
$objWriter->startElement('w:pPr');
|
||||||
|
|
||||||
if($SpIsObject) {
|
if ($SpIsObject) {
|
||||||
$this->_writeParagraphStyle($objWriter, $styleParagraph, true);
|
$this->_writeParagraphStyle($objWriter, $styleParagraph, true);
|
||||||
} elseif(!$SpIsObject && !is_null($styleParagraph)) {
|
} elseif (!$SpIsObject && !is_null($styleParagraph)) {
|
||||||
$objWriter->startElement('w:pStyle');
|
$objWriter->startElement('w:pStyle');
|
||||||
$objWriter->writeAttribute('w:val', $styleParagraph);
|
$objWriter->writeAttribute('w:val', $styleParagraph);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
$objWriter->startElement('w:numPr');
|
$objWriter->startElement('w:numPr');
|
||||||
|
|
||||||
$objWriter->startElement('w:ilvl');
|
$objWriter->startElement('w:ilvl');
|
||||||
$objWriter->writeAttribute('w:val', $depth);
|
$objWriter->writeAttribute('w:val', $depth);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->startElement('w:numId');
|
$objWriter->startElement('w:numId');
|
||||||
$objWriter->writeAttribute('w:val', $listType);
|
$objWriter->writeAttribute('w:val', $listType);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$this->_writeText($objWriter, $textObject, true);
|
$this->_writeText($objWriter, $textObject, true);
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function _writeObject(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Object $object) {
|
protected function _writeObject(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Object $object)
|
||||||
$rIdObject = $object->getRelationId();
|
{
|
||||||
$rIdImage = $object->getImageRelationId();
|
$rIdObject = $object->getRelationId();
|
||||||
$shapeId = md5($rIdObject.'_'.$rIdImage);
|
$rIdImage = $object->getImageRelationId();
|
||||||
|
$shapeId = md5($rIdObject . '_' . $rIdImage);
|
||||||
|
|
||||||
$objectId = $object->getObjectId();
|
$objectId = $object->getObjectId();
|
||||||
|
|
||||||
$style = $object->getStyle();
|
$style = $object->getStyle();
|
||||||
$width = $style->getWidth();
|
$width = $style->getWidth();
|
||||||
$height = $style->getHeight();
|
$height = $style->getHeight();
|
||||||
$align = $style->getAlign();
|
$align = $style->getAlign();
|
||||||
|
|
||||||
|
|
||||||
$objWriter->startElement('w:p');
|
$objWriter->startElement('w:p');
|
||||||
|
|
||||||
if(!is_null($align)) {
|
if (!is_null($align)) {
|
||||||
$objWriter->startElement('w:pPr');
|
$objWriter->startElement('w:pPr');
|
||||||
$objWriter->startElement('w:jc');
|
$objWriter->startElement('w:jc');
|
||||||
$objWriter->writeAttribute('w:val', $align);
|
$objWriter->writeAttribute('w:val', $align);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
$objWriter->startElement('w:r');
|
$objWriter->startElement('w:r');
|
||||||
|
|
||||||
$objWriter->startElement('w:object');
|
$objWriter->startElement('w:object');
|
||||||
$objWriter->writeAttribute('w:dxaOrig', '249');
|
$objWriter->writeAttribute('w:dxaOrig', '249');
|
||||||
$objWriter->writeAttribute('w:dyaOrig', '160');
|
$objWriter->writeAttribute('w:dyaOrig', '160');
|
||||||
|
|
||||||
$objWriter->startElement('v:shape');
|
$objWriter->startElement('v:shape');
|
||||||
$objWriter->writeAttribute('id', $shapeId);
|
$objWriter->writeAttribute('id', $shapeId);
|
||||||
$objWriter->writeAttribute('type', '#_x0000_t75');
|
$objWriter->writeAttribute('type', '#_x0000_t75');
|
||||||
$objWriter->writeAttribute('style', 'width:104px;height:67px');
|
$objWriter->writeAttribute('style', 'width:104px;height:67px');
|
||||||
$objWriter->writeAttribute('o:ole', '');
|
$objWriter->writeAttribute('o:ole', '');
|
||||||
|
|
||||||
$objWriter->startElement('v:imagedata');
|
$objWriter->startElement('v:imagedata');
|
||||||
$objWriter->writeAttribute('r:id', 'rId'.$rIdImage);
|
$objWriter->writeAttribute('r:id', 'rId' . $rIdImage);
|
||||||
$objWriter->writeAttribute('o:title', '');
|
$objWriter->writeAttribute('o:title', '');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->startElement('o:OLEObject');
|
$objWriter->startElement('o:OLEObject');
|
||||||
$objWriter->writeAttribute('Type', 'Embed');
|
$objWriter->writeAttribute('Type', 'Embed');
|
||||||
$objWriter->writeAttribute('ProgID', 'Package');
|
$objWriter->writeAttribute('ProgID', 'Package');
|
||||||
$objWriter->writeAttribute('ShapeID', $shapeId);
|
$objWriter->writeAttribute('ShapeID', $shapeId);
|
||||||
$objWriter->writeAttribute('DrawAspect', 'Icon');
|
$objWriter->writeAttribute('DrawAspect', 'Icon');
|
||||||
$objWriter->writeAttribute('ObjectID', '_'.$objectId);
|
$objWriter->writeAttribute('ObjectID', '_' . $objectId);
|
||||||
$objWriter->writeAttribute('r:id', 'rId'.$rIdObject);
|
$objWriter->writeAttribute('r:id', 'rId' . $rIdObject);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->endElement(); // w:r
|
$objWriter->endElement(); // w:r
|
||||||
|
|
||||||
$objWriter->endElement(); // w:p
|
$objWriter->endElement(); // w:p
|
||||||
}
|
}
|
||||||
|
|
||||||
private function _writeTOC(PHPWord_Shared_XMLWriter $objWriter = null) {
|
private function _writeTOC(PHPWord_Shared_XMLWriter $objWriter = null)
|
||||||
$titles = PHPWord_TOC::getTitles();
|
{
|
||||||
$styleFont = PHPWord_TOC::getStyleFont();
|
$titles = PHPWord_TOC::getTitles();
|
||||||
|
$styleFont = PHPWord_TOC::getStyleFont();
|
||||||
|
|
||||||
$styleTOC = PHPWord_TOC::getStyleTOC();
|
$styleTOC = PHPWord_TOC::getStyleTOC();
|
||||||
$fIndent = $styleTOC->getIndent();
|
$fIndent = $styleTOC->getIndent();
|
||||||
$tabLeader = $styleTOC->getTabLeader();
|
$tabLeader = $styleTOC->getTabLeader();
|
||||||
$tabPos = $styleTOC->getTabPos();
|
$tabPos = $styleTOC->getTabPos();
|
||||||
|
|
||||||
$isObject = ($styleFont instanceof PHPWord_Style_Font) ? true : false;
|
$isObject = ($styleFont instanceof PHPWord_Style_Font) ? true : false;
|
||||||
|
|
||||||
for($i=0; $i<count($titles); $i++) {
|
for ($i = 0; $i < count($titles); $i++) {
|
||||||
$title = $titles[$i];
|
$title = $titles[$i];
|
||||||
$indent = ($title['depth'] - 1) * $fIndent;
|
$indent = ($title['depth'] - 1) * $fIndent;
|
||||||
|
|
||||||
$objWriter->startElement('w:p');
|
$objWriter->startElement('w:p');
|
||||||
|
|
||||||
$objWriter->startElement('w:pPr');
|
$objWriter->startElement('w:pPr');
|
||||||
|
|
||||||
if($isObject && !is_null($styleFont->getParagraphStyle())) {
|
if ($isObject && !is_null($styleFont->getParagraphStyle())) {
|
||||||
$this->_writeParagraphStyle($objWriter, $styleFont->getParagraphStyle());
|
$this->_writeParagraphStyle($objWriter, $styleFont->getParagraphStyle());
|
||||||
}
|
}
|
||||||
|
|
||||||
if($indent > 0) {
|
if ($indent > 0) {
|
||||||
$objWriter->startElement('w:ind');
|
$objWriter->startElement('w:ind');
|
||||||
$objWriter->writeAttribute('w:left', $indent);
|
$objWriter->writeAttribute('w:left', $indent);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!empty($styleFont) && !$isObject) {
|
if (!empty($styleFont) && !$isObject) {
|
||||||
$objWriter->startElement('w:pPr');
|
$objWriter->startElement('w:pPr');
|
||||||
$objWriter->startElement('w:pStyle');
|
$objWriter->startElement('w:pStyle');
|
||||||
$objWriter->writeAttribute('w:val', $styleFont);
|
$objWriter->writeAttribute('w:val', $styleFont);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
$objWriter->startElement('w:tabs');
|
$objWriter->startElement('w:tabs');
|
||||||
$objWriter->startElement('w:tab');
|
$objWriter->startElement('w:tab');
|
||||||
$objWriter->writeAttribute('w:val', 'right');
|
$objWriter->writeAttribute('w:val', 'right');
|
||||||
if(!empty($tabLeader)) {
|
if (!empty($tabLeader)) {
|
||||||
$objWriter->writeAttribute('w:leader', $tabLeader);
|
$objWriter->writeAttribute('w:leader', $tabLeader);
|
||||||
}
|
}
|
||||||
$objWriter->writeAttribute('w:pos', $tabPos);
|
$objWriter->writeAttribute('w:pos', $tabPos);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->endElement(); // w:pPr
|
$objWriter->endElement(); // w:pPr
|
||||||
|
|
||||||
|
|
||||||
if($i == 0) {
|
if ($i == 0) {
|
||||||
$objWriter->startElement('w:r');
|
$objWriter->startElement('w:r');
|
||||||
$objWriter->startElement('w:fldChar');
|
$objWriter->startElement('w:fldChar');
|
||||||
$objWriter->writeAttribute('w:fldCharType', 'begin');
|
$objWriter->writeAttribute('w:fldCharType', 'begin');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->startElement('w:r');
|
$objWriter->startElement('w:r');
|
||||||
$objWriter->startElement('w:instrText');
|
$objWriter->startElement('w:instrText');
|
||||||
$objWriter->writeAttribute('xml:space', 'preserve');
|
$objWriter->writeAttribute('xml:space', 'preserve');
|
||||||
$objWriter->writeRaw('TOC \o "1-9" \h \z \u');
|
$objWriter->writeRaw('TOC \o "1-9" \h \z \u');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->startElement('w:r');
|
$objWriter->startElement('w:r');
|
||||||
$objWriter->startElement('w:fldChar');
|
$objWriter->startElement('w:fldChar');
|
||||||
$objWriter->writeAttribute('w:fldCharType', 'separate');
|
$objWriter->writeAttribute('w:fldCharType', 'separate');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
$objWriter->startElement('w:hyperlink');
|
$objWriter->startElement('w:hyperlink');
|
||||||
$objWriter->writeAttribute('w:anchor', $title['anchor']);
|
$objWriter->writeAttribute('w:anchor', $title['anchor']);
|
||||||
$objWriter->writeAttribute('w:history', '1');
|
$objWriter->writeAttribute('w:history', '1');
|
||||||
|
|
||||||
$objWriter->startElement('w:r');
|
$objWriter->startElement('w:r');
|
||||||
|
|
||||||
if($isObject) {
|
if ($isObject) {
|
||||||
$this->_writeTextStyle($objWriter, $styleFont);
|
$this->_writeTextStyle($objWriter, $styleFont);
|
||||||
}
|
}
|
||||||
|
|
||||||
$objWriter->startElement('w:t');
|
$objWriter->startElement('w:t');
|
||||||
$objWriter->writeRaw($title['text']);
|
$objWriter->writeRaw($title['text']);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->startElement('w:r');
|
$objWriter->startElement('w:r');
|
||||||
$objWriter->writeElement('w:tab', null);
|
$objWriter->writeElement('w:tab', null);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->startElement('w:r');
|
$objWriter->startElement('w:r');
|
||||||
$objWriter->startElement('w:fldChar');
|
$objWriter->startElement('w:fldChar');
|
||||||
$objWriter->writeAttribute('w:fldCharType', 'begin');
|
$objWriter->writeAttribute('w:fldCharType', 'begin');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->startElement('w:r');
|
$objWriter->startElement('w:r');
|
||||||
$objWriter->startElement('w:instrText');
|
$objWriter->startElement('w:instrText');
|
||||||
$objWriter->writeAttribute('xml:space', 'preserve');
|
$objWriter->writeAttribute('xml:space', 'preserve');
|
||||||
$objWriter->writeRaw('PAGEREF '.$title['anchor'].' \h');
|
$objWriter->writeRaw('PAGEREF ' . $title['anchor'] . ' \h');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->startElement('w:r');
|
$objWriter->startElement('w:r');
|
||||||
$objWriter->startElement('w:fldChar');
|
$objWriter->startElement('w:fldChar');
|
||||||
$objWriter->writeAttribute('w:fldCharType', 'end');
|
$objWriter->writeAttribute('w:fldCharType', 'end');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->endElement(); // w:hyperlink
|
$objWriter->endElement(); // w:hyperlink
|
||||||
|
|
||||||
$objWriter->endElement(); // w:p
|
$objWriter->endElement(); // w:p
|
||||||
}
|
}
|
||||||
|
|
||||||
$objWriter->startElement('w:p');
|
$objWriter->startElement('w:p');
|
||||||
$objWriter->startElement('w:r');
|
$objWriter->startElement('w:r');
|
||||||
$objWriter->startElement('w:fldChar');
|
$objWriter->startElement('w:fldChar');
|
||||||
$objWriter->writeAttribute('w:fldCharType', 'end');
|
$objWriter->writeAttribute('w:fldCharType', 'end');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,152 +26,155 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
class PHPWord_Writer_Word2007_DocumentRels extends PHPWord_Writer_Word2007_WriterPart {
|
class PHPWord_Writer_Word2007_DocumentRels extends PHPWord_Writer_Word2007_WriterPart
|
||||||
|
{
|
||||||
|
|
||||||
public function writeDocumentRels($_relsCollection) {
|
public function writeDocumentRels($_relsCollection)
|
||||||
// Create XML writer
|
{
|
||||||
$objWriter = null;
|
// Create XML writer
|
||||||
if ($this->getParentWriter()->getUseDiskCaching()) {
|
$objWriter = null;
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
if ($this->getParentWriter()->getUseDiskCaching()) {
|
||||||
} else {
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
} else {
|
||||||
}
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
||||||
|
}
|
||||||
|
|
||||||
// XML header
|
// XML header
|
||||||
$objWriter->startDocument('1.0','UTF-8','yes');
|
$objWriter->startDocument('1.0', 'UTF-8', 'yes');
|
||||||
|
|
||||||
// Relationships
|
// Relationships
|
||||||
$objWriter->startElement('Relationships');
|
$objWriter->startElement('Relationships');
|
||||||
$objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
|
$objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
|
||||||
|
|
||||||
// Relationship word/document.xml
|
// Relationship word/document.xml
|
||||||
$this->_writeRelationship(
|
$this->_writeRelationship(
|
||||||
$objWriter,
|
$objWriter,
|
||||||
1,
|
1,
|
||||||
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles',
|
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles',
|
||||||
'styles.xml'
|
'styles.xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Relationship word/numbering.xml
|
// Relationship word/numbering.xml
|
||||||
$this->_writeRelationship(
|
$this->_writeRelationship(
|
||||||
$objWriter,
|
$objWriter,
|
||||||
2,
|
2,
|
||||||
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering',
|
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering',
|
||||||
'numbering.xml'
|
'numbering.xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Relationship word/settings.xml
|
// Relationship word/settings.xml
|
||||||
$this->_writeRelationship(
|
$this->_writeRelationship(
|
||||||
$objWriter,
|
$objWriter,
|
||||||
3,
|
3,
|
||||||
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings',
|
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings',
|
||||||
'settings.xml'
|
'settings.xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Relationship word/settings.xml
|
// Relationship word/settings.xml
|
||||||
$this->_writeRelationship(
|
$this->_writeRelationship(
|
||||||
$objWriter,
|
$objWriter,
|
||||||
4,
|
4,
|
||||||
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme',
|
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme',
|
||||||
'theme/theme1.xml'
|
'theme/theme1.xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Relationship word/settings.xml
|
// Relationship word/settings.xml
|
||||||
$this->_writeRelationship(
|
$this->_writeRelationship(
|
||||||
$objWriter,
|
$objWriter,
|
||||||
5,
|
5,
|
||||||
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings',
|
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings',
|
||||||
'webSettings.xml'
|
'webSettings.xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Relationship word/settings.xml
|
// Relationship word/settings.xml
|
||||||
$this->_writeRelationship(
|
$this->_writeRelationship(
|
||||||
$objWriter,
|
$objWriter,
|
||||||
6,
|
6,
|
||||||
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable',
|
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable',
|
||||||
'fontTable.xml'
|
'fontTable.xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Relationships to Images / Embeddings / Headers / Footers
|
// Relationships to Images / Embeddings / Headers / Footers
|
||||||
foreach($_relsCollection as $relation) {
|
foreach ($_relsCollection as $relation) {
|
||||||
$relationType = $relation['type'];
|
$relationType = $relation['type'];
|
||||||
$relationName = $relation['target'];
|
$relationName = $relation['target'];
|
||||||
$relationId = $relation['rID'];
|
$relationId = $relation['rID'];
|
||||||
$targetMode = ($relationType == 'hyperlink') ? 'External' : '';
|
$targetMode = ($relationType == 'hyperlink') ? 'External' : '';
|
||||||
|
|
||||||
$this->_writeRelationship(
|
$this->_writeRelationship(
|
||||||
$objWriter,
|
$objWriter,
|
||||||
$relationId,
|
$relationId,
|
||||||
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/'.$relationType,
|
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/' . $relationType,
|
||||||
$relationName,
|
$relationName,
|
||||||
$targetMode
|
$targetMode
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// Return
|
// Return
|
||||||
return $objWriter->getData();
|
return $objWriter->getData();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function writeHeaderFooterRels($_relsCollection) {
|
public function writeHeaderFooterRels($_relsCollection)
|
||||||
// Create XML writer
|
{
|
||||||
$objWriter = null;
|
// Create XML writer
|
||||||
if ($this->getParentWriter()->getUseDiskCaching()) {
|
$objWriter = null;
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
if ($this->getParentWriter()->getUseDiskCaching()) {
|
||||||
} else {
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
} else {
|
||||||
}
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
||||||
|
}
|
||||||
|
|
||||||
// XML header
|
// XML header
|
||||||
$objWriter->startDocument('1.0','UTF-8','yes');
|
$objWriter->startDocument('1.0', 'UTF-8', 'yes');
|
||||||
|
|
||||||
// Relationships
|
// Relationships
|
||||||
$objWriter->startElement('Relationships');
|
$objWriter->startElement('Relationships');
|
||||||
$objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
|
$objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
|
||||||
|
|
||||||
// Relationships to Images / Embeddings / Headers / Footers
|
// Relationships to Images / Embeddings / Headers / Footers
|
||||||
foreach($_relsCollection as $relation) {
|
foreach ($_relsCollection as $relation) {
|
||||||
$relationType = $relation['type'];
|
$relationType = $relation['type'];
|
||||||
$relationName = $relation['target'];
|
$relationName = $relation['target'];
|
||||||
$relationId = $relation['rID'];
|
$relationId = $relation['rID'];
|
||||||
|
|
||||||
$this->_writeRelationship(
|
$this->_writeRelationship(
|
||||||
$objWriter,
|
$objWriter,
|
||||||
$relationId,
|
$relationId,
|
||||||
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/'.$relationType,
|
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/' . $relationType,
|
||||||
$relationName
|
$relationName
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// Return
|
// Return
|
||||||
return $objWriter->getData();
|
return $objWriter->getData();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function _writeRelationship(PHPWord_Shared_XMLWriter $objWriter = null, $pId = 1, $pType = '', $pTarget = '', $pTargetMode = '') {
|
private function _writeRelationship(PHPWord_Shared_XMLWriter $objWriter = null, $pId = 1, $pType = '', $pTarget = '', $pTargetMode = '')
|
||||||
if($pType != '' && $pTarget != '') {
|
{
|
||||||
if(strpos($pId, 'rId') === false) {
|
if ($pType != '' && $pTarget != '') {
|
||||||
$pId = 'rId' . $pId;
|
if (strpos($pId, 'rId') === false) {
|
||||||
}
|
$pId = 'rId' . $pId;
|
||||||
|
}
|
||||||
|
|
||||||
// Write relationship
|
// Write relationship
|
||||||
$objWriter->startElement('Relationship');
|
$objWriter->startElement('Relationship');
|
||||||
$objWriter->writeAttribute('Id', $pId);
|
$objWriter->writeAttribute('Id', $pId);
|
||||||
$objWriter->writeAttribute('Type', $pType);
|
$objWriter->writeAttribute('Type', $pType);
|
||||||
$objWriter->writeAttribute('Target', $pTarget);
|
$objWriter->writeAttribute('Target', $pTarget);
|
||||||
|
|
||||||
if($pTargetMode != '') {
|
if ($pTargetMode != '') {
|
||||||
$objWriter->writeAttribute('TargetMode', $pTargetMode);
|
$objWriter->writeAttribute('TargetMode', $pTargetMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
} else {
|
} else {
|
||||||
throw new Exception("Invalid parameters passed.");
|
throw new Exception("Invalid parameters passed.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -26,54 +26,56 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
class PHPWord_Writer_Word2007_Footer extends PHPWord_Writer_Word2007_Base {
|
class PHPWord_Writer_Word2007_Footer extends PHPWord_Writer_Word2007_Base
|
||||||
|
{
|
||||||
|
|
||||||
public function writeFooter(PHPWord_Section_Footer $footer) {
|
public function writeFooter(PHPWord_Section_Footer $footer)
|
||||||
// Create XML writer
|
{
|
||||||
$objWriter = null;
|
// Create XML writer
|
||||||
if ($this->getParentWriter()->getUseDiskCaching()) {
|
$objWriter = null;
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
if ($this->getParentWriter()->getUseDiskCaching()) {
|
||||||
} else {
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
} else {
|
||||||
}
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
||||||
|
}
|
||||||
|
|
||||||
// XML header
|
// XML header
|
||||||
$objWriter->startDocument('1.0', 'UTF-8', 'yes');
|
$objWriter->startDocument('1.0', 'UTF-8', 'yes');
|
||||||
|
|
||||||
$objWriter->startElement('w:ftr');
|
$objWriter->startElement('w:ftr');
|
||||||
$objWriter->writeAttribute('xmlns:ve','http://schemas.openxmlformats.org/markup-compatibility/2006');
|
$objWriter->writeAttribute('xmlns:ve', 'http://schemas.openxmlformats.org/markup-compatibility/2006');
|
||||||
$objWriter->writeAttribute('xmlns:o','urn:schemas-microsoft-com:office:office');
|
$objWriter->writeAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office');
|
||||||
$objWriter->writeAttribute('xmlns:r','http://schemas.openxmlformats.org/officeDocument/2006/relationships');
|
$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:m', 'http://schemas.openxmlformats.org/officeDocument/2006/math');
|
||||||
$objWriter->writeAttribute('xmlns:v','urn:schemas-microsoft-com:vml');
|
$objWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml');
|
||||||
$objWriter->writeAttribute('xmlns:wp','http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing');
|
$objWriter->writeAttribute('xmlns:wp', 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing');
|
||||||
$objWriter->writeAttribute('xmlns:w10','urn:schemas-microsoft-com:office:word');
|
$objWriter->writeAttribute('xmlns:w10', 'urn:schemas-microsoft-com:office:word');
|
||||||
$objWriter->writeAttribute('xmlns:w','http://schemas.openxmlformats.org/wordprocessingml/2006/main');
|
$objWriter->writeAttribute('xmlns:w', 'http://schemas.openxmlformats.org/wordprocessingml/2006/main');
|
||||||
$objWriter->writeAttribute('xmlns:wne','http://schemas.microsoft.com/office/word/2006/wordml');
|
$objWriter->writeAttribute('xmlns:wne', 'http://schemas.microsoft.com/office/word/2006/wordml');
|
||||||
|
|
||||||
$_elements = $footer->getElements();
|
$_elements = $footer->getElements();
|
||||||
|
|
||||||
foreach($_elements as $element) {
|
foreach ($_elements as $element) {
|
||||||
if($element instanceof PHPWord_Section_Text) {
|
if ($element instanceof PHPWord_Section_Text) {
|
||||||
$this->_writeText($objWriter, $element);
|
$this->_writeText($objWriter, $element);
|
||||||
} elseif($element instanceof PHPWord_Section_TextRun) {
|
} elseif ($element instanceof PHPWord_Section_TextRun) {
|
||||||
$this->_writeTextRun($objWriter, $element);
|
$this->_writeTextRun($objWriter, $element);
|
||||||
} elseif($element instanceof PHPWord_Section_TextBreak) {
|
} elseif ($element instanceof PHPWord_Section_TextBreak) {
|
||||||
$this->_writeTextBreak($objWriter);
|
$this->_writeTextBreak($objWriter);
|
||||||
} elseif($element instanceof PHPWord_Section_Table) {
|
} elseif ($element instanceof PHPWord_Section_Table) {
|
||||||
$this->_writeTable($objWriter, $element);
|
$this->_writeTable($objWriter, $element);
|
||||||
} elseif($element instanceof PHPWord_Section_Image ||
|
} elseif ($element instanceof PHPWord_Section_Image ||
|
||||||
$element instanceof PHPWord_Section_MemoryImage) {
|
$element instanceof PHPWord_Section_MemoryImage
|
||||||
$this->_writeImage($objWriter, $element);
|
) {
|
||||||
} elseif($element instanceof PHPWord_Section_Footer_PreserveText) {
|
$this->_writeImage($objWriter, $element);
|
||||||
$this->_writePreserveText($objWriter, $element);
|
} elseif ($element instanceof PHPWord_Section_Footer_PreserveText) {
|
||||||
}
|
$this->_writePreserveText($objWriter, $element);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// Return
|
// Return
|
||||||
return $objWriter->getData();
|
return $objWriter->getData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
|
||||||
|
|
@ -26,58 +26,60 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
class PHPWord_Writer_Word2007_Header extends PHPWord_Writer_Word2007_Base {
|
class PHPWord_Writer_Word2007_Header extends PHPWord_Writer_Word2007_Base
|
||||||
|
{
|
||||||
|
|
||||||
public function writeHeader(PHPWord_Section_Header $header) {
|
public function writeHeader(PHPWord_Section_Header $header)
|
||||||
// Create XML writer
|
{
|
||||||
if ($this->getParentWriter()->getUseDiskCaching()) {
|
// Create XML writer
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
if ($this->getParentWriter()->getUseDiskCaching()) {
|
||||||
} else {
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
} else {
|
||||||
}
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
||||||
|
}
|
||||||
|
|
||||||
// XML header
|
// XML header
|
||||||
$objWriter->startDocument('1.0', 'UTF-8', 'yes');
|
$objWriter->startDocument('1.0', 'UTF-8', 'yes');
|
||||||
|
|
||||||
$objWriter->startElement('w:hdr');
|
$objWriter->startElement('w:hdr');
|
||||||
$objWriter->writeAttribute('xmlns:ve','http://schemas.openxmlformats.org/markup-compatibility/2006');
|
$objWriter->writeAttribute('xmlns:ve', 'http://schemas.openxmlformats.org/markup-compatibility/2006');
|
||||||
$objWriter->writeAttribute('xmlns:o','urn:schemas-microsoft-com:office:office');
|
$objWriter->writeAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office');
|
||||||
$objWriter->writeAttribute('xmlns:r','http://schemas.openxmlformats.org/officeDocument/2006/relationships');
|
$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:m', 'http://schemas.openxmlformats.org/officeDocument/2006/math');
|
||||||
$objWriter->writeAttribute('xmlns:v','urn:schemas-microsoft-com:vml');
|
$objWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml');
|
||||||
$objWriter->writeAttribute('xmlns:wp','http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing');
|
$objWriter->writeAttribute('xmlns:wp', 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing');
|
||||||
$objWriter->writeAttribute('xmlns:w10','urn:schemas-microsoft-com:office:word');
|
$objWriter->writeAttribute('xmlns:w10', 'urn:schemas-microsoft-com:office:word');
|
||||||
$objWriter->writeAttribute('xmlns:w','http://schemas.openxmlformats.org/wordprocessingml/2006/main');
|
$objWriter->writeAttribute('xmlns:w', 'http://schemas.openxmlformats.org/wordprocessingml/2006/main');
|
||||||
$objWriter->writeAttribute('xmlns:wne','http://schemas.microsoft.com/office/word/2006/wordml');
|
$objWriter->writeAttribute('xmlns:wne', 'http://schemas.microsoft.com/office/word/2006/wordml');
|
||||||
|
|
||||||
|
|
||||||
$_elements = $header->getElements();
|
$_elements = $header->getElements();
|
||||||
|
|
||||||
foreach($_elements as $element) {
|
foreach ($_elements as $element) {
|
||||||
if($element instanceof PHPWord_Section_Text) {
|
if ($element instanceof PHPWord_Section_Text) {
|
||||||
$this->_writeText($objWriter, $element);
|
$this->_writeText($objWriter, $element);
|
||||||
} elseif($element instanceof PHPWord_Section_TextRun) {
|
} elseif ($element instanceof PHPWord_Section_TextRun) {
|
||||||
$this->_writeTextRun($objWriter, $element);
|
$this->_writeTextRun($objWriter, $element);
|
||||||
} elseif($element instanceof PHPWord_Section_TextBreak) {
|
} elseif ($element instanceof PHPWord_Section_TextBreak) {
|
||||||
$this->_writeTextBreak($objWriter);
|
$this->_writeTextBreak($objWriter);
|
||||||
} elseif($element instanceof PHPWord_Section_Table) {
|
} elseif ($element instanceof PHPWord_Section_Table) {
|
||||||
$this->_writeTable($objWriter, $element);
|
$this->_writeTable($objWriter, $element);
|
||||||
} elseif($element instanceof PHPWord_Section_Image ||
|
} elseif ($element instanceof PHPWord_Section_Image ||
|
||||||
$element instanceof PHPWord_Section_MemoryImage) {
|
$element instanceof PHPWord_Section_MemoryImage
|
||||||
if(!$element->getIsWatermark()) {
|
) {
|
||||||
$this->_writeImage($objWriter, $element);
|
if (!$element->getIsWatermark()) {
|
||||||
} else {
|
$this->_writeImage($objWriter, $element);
|
||||||
$this->_writeWatermark($objWriter, $element);
|
} else {
|
||||||
}
|
$this->_writeWatermark($objWriter, $element);
|
||||||
} elseif($element instanceof PHPWord_Section_Footer_PreserveText) {
|
}
|
||||||
$this->_writePreserveText($objWriter, $element);
|
} elseif ($element instanceof PHPWord_Section_Footer_PreserveText) {
|
||||||
}
|
$this->_writePreserveText($objWriter, $element);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// Return
|
// Return
|
||||||
return $objWriter->getData();
|
return $objWriter->getData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
|
||||||
|
|
@ -26,85 +26,88 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
class PHPWord_Writer_Word2007_Rels extends PHPWord_Writer_Word2007_WriterPart {
|
class PHPWord_Writer_Word2007_Rels extends PHPWord_Writer_Word2007_WriterPart
|
||||||
|
{
|
||||||
|
|
||||||
public function writeRelationships(PHPWord $pPHPWord = null) {
|
public function writeRelationships(PHPWord $pPHPWord = null)
|
||||||
// Create XML writer
|
{
|
||||||
$objWriter = null;
|
// Create XML writer
|
||||||
if ($this->getParentWriter()->getUseDiskCaching()) {
|
$objWriter = null;
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
if ($this->getParentWriter()->getUseDiskCaching()) {
|
||||||
} else {
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
} else {
|
||||||
}
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
||||||
|
}
|
||||||
|
|
||||||
// XML header
|
// XML header
|
||||||
$objWriter->startDocument('1.0','UTF-8','yes');
|
$objWriter->startDocument('1.0', 'UTF-8', 'yes');
|
||||||
|
|
||||||
// Relationships
|
// Relationships
|
||||||
$objWriter->startElement('Relationships');
|
$objWriter->startElement('Relationships');
|
||||||
$objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
|
$objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
|
||||||
|
|
||||||
$relationId = 1;
|
$relationId = 1;
|
||||||
|
|
||||||
// Relationship word/document.xml
|
// Relationship word/document.xml
|
||||||
$this->_writeRelationship(
|
$this->_writeRelationship(
|
||||||
$objWriter,
|
$objWriter,
|
||||||
$relationId,
|
$relationId,
|
||||||
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument',
|
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument',
|
||||||
'word/document.xml'
|
'word/document.xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Relationship docProps/core.xml
|
// Relationship docProps/core.xml
|
||||||
$this->_writeRelationship(
|
$this->_writeRelationship(
|
||||||
$objWriter,
|
$objWriter,
|
||||||
++$relationId,
|
++$relationId,
|
||||||
'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties',
|
'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties',
|
||||||
'docProps/core.xml'
|
'docProps/core.xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Relationship docProps/app.xml
|
// Relationship docProps/app.xml
|
||||||
$this->_writeRelationship(
|
$this->_writeRelationship(
|
||||||
$objWriter,
|
$objWriter,
|
||||||
++$relationId,
|
++$relationId,
|
||||||
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',
|
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',
|
||||||
'docProps/app.xml'
|
'docProps/app.xml'
|
||||||
);
|
);
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
// Return
|
// Return
|
||||||
return $objWriter->getData();
|
return $objWriter->getData();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write Override content type
|
* Write Override content type
|
||||||
*
|
*
|
||||||
* @param PHPWord_Shared_XMLWriter $objWriter XML Writer
|
* @param PHPWord_Shared_XMLWriter $objWriter XML Writer
|
||||||
* @param int $pId Relationship ID. rId will be prepended!
|
* @param int $pId Relationship ID. rId will be prepended!
|
||||||
* @param string $pType Relationship type
|
* @param string $pType Relationship type
|
||||||
* @param string $pTarget Relationship target
|
* @param string $pTarget Relationship target
|
||||||
* @param string $pTargetMode Relationship target mode
|
* @param string $pTargetMode Relationship target mode
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
private function _writeRelationship(PHPWord_Shared_XMLWriter $objWriter = null, $pId = 1, $pType = '', $pTarget = '', $pTargetMode = '') {
|
private function _writeRelationship(PHPWord_Shared_XMLWriter $objWriter = null, $pId = 1, $pType = '', $pTarget = '', $pTargetMode = '')
|
||||||
if($pType != '' && $pTarget != '') {
|
{
|
||||||
if(strpos($pId, 'rId') === false) {
|
if ($pType != '' && $pTarget != '') {
|
||||||
$pId = 'rId' . $pId;
|
if (strpos($pId, 'rId') === false) {
|
||||||
}
|
$pId = 'rId' . $pId;
|
||||||
|
}
|
||||||
|
|
||||||
// Write relationship
|
// Write relationship
|
||||||
$objWriter->startElement('Relationship');
|
$objWriter->startElement('Relationship');
|
||||||
$objWriter->writeAttribute('Id', $pId);
|
$objWriter->writeAttribute('Id', $pId);
|
||||||
$objWriter->writeAttribute('Type', $pType);
|
$objWriter->writeAttribute('Type', $pType);
|
||||||
$objWriter->writeAttribute('Target', $pTarget);
|
$objWriter->writeAttribute('Target', $pTarget);
|
||||||
|
|
||||||
if($pTargetMode != '') {
|
if ($pTargetMode != '') {
|
||||||
$objWriter->writeAttribute('TargetMode', $pTargetMode);
|
$objWriter->writeAttribute('TargetMode', $pTargetMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
} else {
|
} else {
|
||||||
throw new Exception("Invalid parameters passed.");
|
throw new Exception("Invalid parameters passed.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,321 +26,325 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
class PHPWord_Writer_Word2007_Styles extends PHPWord_Writer_Word2007_Base {
|
class PHPWord_Writer_Word2007_Styles extends PHPWord_Writer_Word2007_Base
|
||||||
|
{
|
||||||
|
|
||||||
private $_document;
|
private $_document;
|
||||||
|
|
||||||
public function writeStyles(PHPWord $pPHPWord = null) {
|
public function writeStyles(PHPWord $pPHPWord = null)
|
||||||
// Create XML writer
|
{
|
||||||
$objWriter = null;
|
// Create XML writer
|
||||||
if($this->getParentWriter()->getUseDiskCaching()) {
|
$objWriter = null;
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
if ($this->getParentWriter()->getUseDiskCaching()) {
|
||||||
} else {
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
|
||||||
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
} else {
|
||||||
}
|
$objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
|
||||||
|
}
|
||||||
|
|
||||||
$this->_document = $pPHPWord;
|
$this->_document = $pPHPWord;
|
||||||
|
|
||||||
// XML header
|
// XML header
|
||||||
$objWriter->startDocument('1.0','UTF-8','yes');
|
$objWriter->startDocument('1.0', 'UTF-8', 'yes');
|
||||||
|
|
||||||
$objWriter->startElement('w:styles');
|
$objWriter->startElement('w:styles');
|
||||||
|
|
||||||
$objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
|
$objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
|
||||||
$objWriter->writeAttribute('xmlns:w', 'http://schemas.openxmlformats.org/wordprocessingml/2006/main');
|
$objWriter->writeAttribute('xmlns:w', 'http://schemas.openxmlformats.org/wordprocessingml/2006/main');
|
||||||
|
|
||||||
// Write DocDefaults
|
// Write DocDefaults
|
||||||
$this->_writeDocDefaults($objWriter);
|
$this->_writeDocDefaults($objWriter);
|
||||||
|
|
||||||
|
|
||||||
// Write Style Definitions
|
// Write Style Definitions
|
||||||
$styles = PHPWord_Style::getStyles();
|
$styles = PHPWord_Style::getStyles();
|
||||||
if(count($styles) > 0) {
|
if (count($styles) > 0) {
|
||||||
foreach($styles as $styleName => $style) {
|
foreach ($styles as $styleName => $style) {
|
||||||
if($style instanceof PHPWord_Style_Font) {
|
if ($style instanceof PHPWord_Style_Font) {
|
||||||
|
|
||||||
$paragraphStyle = $style->getParagraphStyle();
|
$paragraphStyle = $style->getParagraphStyle();
|
||||||
$styleType = $style->getStyleType();
|
$styleType = $style->getStyleType();
|
||||||
|
|
||||||
$type = ($styleType == 'title') ? 'paragraph' : 'character';
|
$type = ($styleType == 'title') ? 'paragraph' : 'character';
|
||||||
|
|
||||||
if(!is_null($paragraphStyle)) {
|
if (!is_null($paragraphStyle)) {
|
||||||
$type = 'paragraph';
|
$type = 'paragraph';
|
||||||
}
|
}
|
||||||
|
|
||||||
$objWriter->startElement('w:style');
|
$objWriter->startElement('w:style');
|
||||||
$objWriter->writeAttribute('w:type', $type);
|
$objWriter->writeAttribute('w:type', $type);
|
||||||
|
|
||||||
if($styleType == 'title') {
|
if ($styleType == 'title') {
|
||||||
$arrStyle = explode('_', $styleName);
|
$arrStyle = explode('_', $styleName);
|
||||||
$styleId = 'Heading'.$arrStyle[1];
|
$styleId = 'Heading' . $arrStyle[1];
|
||||||
$styleName = 'heading '.$arrStyle[1];
|
$styleName = 'heading ' . $arrStyle[1];
|
||||||
$styleLink = 'Heading'.$arrStyle[1].'Char';
|
$styleLink = 'Heading' . $arrStyle[1] . 'Char';
|
||||||
$objWriter->writeAttribute('w:styleId', $styleId);
|
$objWriter->writeAttribute('w:styleId', $styleId);
|
||||||
|
|
||||||
$objWriter->startElement('w:link');
|
$objWriter->startElement('w:link');
|
||||||
$objWriter->writeAttribute('w:val', $styleLink);
|
$objWriter->writeAttribute('w:val', $styleLink);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
$objWriter->startElement('w:name');
|
$objWriter->startElement('w:name');
|
||||||
$objWriter->writeAttribute('w:val', $styleName);
|
$objWriter->writeAttribute('w:val', $styleName);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
if(!is_null($paragraphStyle)) {
|
if (!is_null($paragraphStyle)) {
|
||||||
$this->_writeParagraphStyle($objWriter, $paragraphStyle);
|
$this->_writeParagraphStyle($objWriter, $paragraphStyle);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->_writeTextStyle($objWriter, $style);
|
$this->_writeTextStyle($objWriter, $style);
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
} elseif($style instanceof PHPWord_Style_Paragraph) {
|
} elseif ($style instanceof PHPWord_Style_Paragraph) {
|
||||||
$objWriter->startElement('w:style');
|
$objWriter->startElement('w:style');
|
||||||
$objWriter->writeAttribute('w:type', 'paragraph');
|
$objWriter->writeAttribute('w:type', 'paragraph');
|
||||||
$objWriter->writeAttribute('w:customStyle', '1');
|
$objWriter->writeAttribute('w:customStyle', '1');
|
||||||
$objWriter->writeAttribute('w:styleId', $styleName);
|
$objWriter->writeAttribute('w:styleId', $styleName);
|
||||||
|
|
||||||
$objWriter->startElement('w:name');
|
$objWriter->startElement('w:name');
|
||||||
$objWriter->writeAttribute('w:val', $styleName);
|
$objWriter->writeAttribute('w:val', $styleName);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$this->_writeParagraphStyle($objWriter, $style);
|
$this->_writeParagraphStyle($objWriter, $style);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
} elseif($style instanceof PHPWord_Style_TableFull) {
|
} elseif ($style instanceof PHPWord_Style_TableFull) {
|
||||||
$objWriter->startElement('w:style');
|
$objWriter->startElement('w:style');
|
||||||
$objWriter->writeAttribute('w:type', 'table');
|
$objWriter->writeAttribute('w:type', 'table');
|
||||||
$objWriter->writeAttribute('w:customStyle', '1');
|
$objWriter->writeAttribute('w:customStyle', '1');
|
||||||
$objWriter->writeAttribute('w:styleId', $styleName);
|
$objWriter->writeAttribute('w:styleId', $styleName);
|
||||||
|
|
||||||
$objWriter->startElement('w:name');
|
$objWriter->startElement('w:name');
|
||||||
$objWriter->writeAttribute('w:val', $styleName);
|
$objWriter->writeAttribute('w:val', $styleName);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->startElement('w:uiPriority');
|
$objWriter->startElement('w:uiPriority');
|
||||||
$objWriter->writeAttribute('w:val', '99');
|
$objWriter->writeAttribute('w:val', '99');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$this->_writeFullTableStyle($objWriter, $style);
|
$this->_writeFullTableStyle($objWriter, $style);
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$objWriter->endElement(); // w:styles
|
$objWriter->endElement(); // w:styles
|
||||||
|
|
||||||
// Return
|
// Return
|
||||||
return $objWriter->getData();
|
return $objWriter->getData();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function _writeFullTableStyle(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Style_TableFull $style) {
|
private function _writeFullTableStyle(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Style_TableFull $style)
|
||||||
|
{
|
||||||
|
|
||||||
$brdSz = $style->getBorderSize();
|
$brdSz = $style->getBorderSize();
|
||||||
$brdCol = $style->getBorderColor();
|
$brdCol = $style->getBorderColor();
|
||||||
$bgColor = $style->getBgColor();
|
$bgColor = $style->getBgColor();
|
||||||
$cellMargin = $style->getCellMargin();
|
$cellMargin = $style->getCellMargin();
|
||||||
|
|
||||||
$bTop = (!is_null($brdSz[0])) ? true : false;
|
$bTop = (!is_null($brdSz[0])) ? true : false;
|
||||||
$bLeft = (!is_null($brdSz[1])) ? true : false;
|
$bLeft = (!is_null($brdSz[1])) ? true : false;
|
||||||
$bRight = (!is_null($brdSz[2])) ? true : false;
|
$bRight = (!is_null($brdSz[2])) ? true : false;
|
||||||
$bBottom = (!is_null($brdSz[3])) ? true : false;
|
$bBottom = (!is_null($brdSz[3])) ? true : false;
|
||||||
$bInsH = (!is_null($brdSz[4])) ? true : false;
|
$bInsH = (!is_null($brdSz[4])) ? true : false;
|
||||||
$bInsV = (!is_null($brdSz[5])) ? true : false;
|
$bInsV = (!is_null($brdSz[5])) ? true : false;
|
||||||
$borders = ($bTop || $bLeft || $bRight || $bBottom || $bInsH || $bInsV) ? true : false;
|
$borders = ($bTop || $bLeft || $bRight || $bBottom || $bInsH || $bInsV) ? true : false;
|
||||||
|
|
||||||
$mTop = (!is_null($cellMargin[0])) ? true : false;
|
$mTop = (!is_null($cellMargin[0])) ? true : false;
|
||||||
$mLeft = (!is_null($cellMargin[1])) ? true : false;
|
$mLeft = (!is_null($cellMargin[1])) ? true : false;
|
||||||
$mRight = (!is_null($cellMargin[2])) ? true : false;
|
$mRight = (!is_null($cellMargin[2])) ? true : false;
|
||||||
$mBottom = (!is_null($cellMargin[3])) ? true : false;
|
$mBottom = (!is_null($cellMargin[3])) ? true : false;
|
||||||
$margins = ($mTop || $mLeft || $mRight || $mBottom) ? true : false;
|
$margins = ($mTop || $mLeft || $mRight || $mBottom) ? true : false;
|
||||||
|
|
||||||
$objWriter->startElement('w:tblPr');
|
$objWriter->startElement('w:tblPr');
|
||||||
|
|
||||||
if($margins) {
|
if ($margins) {
|
||||||
$objWriter->startElement('w:tblCellMar');
|
$objWriter->startElement('w:tblCellMar');
|
||||||
if($mTop) {
|
if ($mTop) {
|
||||||
echo $margins[0];
|
echo $margins[0];
|
||||||
$objWriter->startElement('w:top');
|
$objWriter->startElement('w:top');
|
||||||
$objWriter->writeAttribute('w:w', $cellMargin[0]);
|
$objWriter->writeAttribute('w:w', $cellMargin[0]);
|
||||||
$objWriter->writeAttribute('w:type', 'dxa');
|
$objWriter->writeAttribute('w:type', 'dxa');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
if($mLeft) {
|
if ($mLeft) {
|
||||||
$objWriter->startElement('w:left');
|
$objWriter->startElement('w:left');
|
||||||
$objWriter->writeAttribute('w:w', $cellMargin[1]);
|
$objWriter->writeAttribute('w:w', $cellMargin[1]);
|
||||||
$objWriter->writeAttribute('w:type', 'dxa');
|
$objWriter->writeAttribute('w:type', 'dxa');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
if($mRight) {
|
if ($mRight) {
|
||||||
$objWriter->startElement('w:right');
|
$objWriter->startElement('w:right');
|
||||||
$objWriter->writeAttribute('w:w', $cellMargin[2]);
|
$objWriter->writeAttribute('w:w', $cellMargin[2]);
|
||||||
$objWriter->writeAttribute('w:type', 'dxa');
|
$objWriter->writeAttribute('w:type', 'dxa');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
if($mBottom) {
|
if ($mBottom) {
|
||||||
$objWriter->startElement('w:bottom');
|
$objWriter->startElement('w:bottom');
|
||||||
$objWriter->writeAttribute('w:w', $cellMargin[3]);
|
$objWriter->writeAttribute('w:w', $cellMargin[3]);
|
||||||
$objWriter->writeAttribute('w:type', 'dxa');
|
$objWriter->writeAttribute('w:type', 'dxa');
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
if($borders) {
|
if ($borders) {
|
||||||
$objWriter->startElement('w:tblBorders');
|
$objWriter->startElement('w:tblBorders');
|
||||||
if($bTop) {
|
if ($bTop) {
|
||||||
$objWriter->startElement('w:top');
|
$objWriter->startElement('w:top');
|
||||||
$objWriter->writeAttribute('w:val', 'single');
|
$objWriter->writeAttribute('w:val', 'single');
|
||||||
$objWriter->writeAttribute('w:sz', $brdSz[0]);
|
$objWriter->writeAttribute('w:sz', $brdSz[0]);
|
||||||
$objWriter->writeAttribute('w:color', $brdCol[0]);
|
$objWriter->writeAttribute('w:color', $brdCol[0]);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
if($bLeft) {
|
if ($bLeft) {
|
||||||
$objWriter->startElement('w:left');
|
$objWriter->startElement('w:left');
|
||||||
$objWriter->writeAttribute('w:val', 'single');
|
$objWriter->writeAttribute('w:val', 'single');
|
||||||
$objWriter->writeAttribute('w:sz', $brdSz[1]);
|
$objWriter->writeAttribute('w:sz', $brdSz[1]);
|
||||||
$objWriter->writeAttribute('w:color', $brdCol[1]);
|
$objWriter->writeAttribute('w:color', $brdCol[1]);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
if($bRight) {
|
if ($bRight) {
|
||||||
$objWriter->startElement('w:right');
|
$objWriter->startElement('w:right');
|
||||||
$objWriter->writeAttribute('w:val', 'single');
|
$objWriter->writeAttribute('w:val', 'single');
|
||||||
$objWriter->writeAttribute('w:sz', $brdSz[2]);
|
$objWriter->writeAttribute('w:sz', $brdSz[2]);
|
||||||
$objWriter->writeAttribute('w:color', $brdCol[2]);
|
$objWriter->writeAttribute('w:color', $brdCol[2]);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
if($bBottom) {
|
if ($bBottom) {
|
||||||
$objWriter->startElement('w:bottom');
|
$objWriter->startElement('w:bottom');
|
||||||
$objWriter->writeAttribute('w:val', 'single');
|
$objWriter->writeAttribute('w:val', 'single');
|
||||||
$objWriter->writeAttribute('w:sz', $brdSz[3]);
|
$objWriter->writeAttribute('w:sz', $brdSz[3]);
|
||||||
$objWriter->writeAttribute('w:color', $brdCol[3]);
|
$objWriter->writeAttribute('w:color', $brdCol[3]);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
if($bInsH) {
|
if ($bInsH) {
|
||||||
$objWriter->startElement('w:insideH');
|
$objWriter->startElement('w:insideH');
|
||||||
$objWriter->writeAttribute('w:val', 'single');
|
$objWriter->writeAttribute('w:val', 'single');
|
||||||
$objWriter->writeAttribute('w:sz', $brdSz[4]);
|
$objWriter->writeAttribute('w:sz', $brdSz[4]);
|
||||||
$objWriter->writeAttribute('w:color', $brdCol[4]);
|
$objWriter->writeAttribute('w:color', $brdCol[4]);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
if($bInsV) {
|
if ($bInsV) {
|
||||||
$objWriter->startElement('w:insideV');
|
$objWriter->startElement('w:insideV');
|
||||||
$objWriter->writeAttribute('w:val', 'single');
|
$objWriter->writeAttribute('w:val', 'single');
|
||||||
$objWriter->writeAttribute('w:sz', $brdSz[5]);
|
$objWriter->writeAttribute('w:sz', $brdSz[5]);
|
||||||
$objWriter->writeAttribute('w:color', $brdCol[5]);
|
$objWriter->writeAttribute('w:color', $brdCol[5]);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
if(!is_null($bgColor)) {
|
if (!is_null($bgColor)) {
|
||||||
$objWriter->startElement('w:tcPr');
|
$objWriter->startElement('w:tcPr');
|
||||||
$objWriter->startElement('w:shd');
|
$objWriter->startElement('w:shd');
|
||||||
$objWriter->writeAttribute('w:val', 'clear');
|
$objWriter->writeAttribute('w:val', 'clear');
|
||||||
$objWriter->writeAttribute('w:color', 'auto');
|
$objWriter->writeAttribute('w:color', 'auto');
|
||||||
$objWriter->writeAttribute('w:fill', $bgColor);
|
$objWriter->writeAttribute('w:fill', $bgColor);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// First Row
|
// First Row
|
||||||
$firstRow = $style->getFirstRow();
|
$firstRow = $style->getFirstRow();
|
||||||
if(!is_null($firstRow)) {
|
if (!is_null($firstRow)) {
|
||||||
$this->_writeRowStyle($objWriter, 'firstRow', $firstRow);
|
$this->_writeRowStyle($objWriter, 'firstRow', $firstRow);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function _writeRowStyle(PHPWord_Shared_XMLWriter $objWriter = null, $type, PHPWord_Style_TableFull $style) {
|
private function _writeRowStyle(PHPWord_Shared_XMLWriter $objWriter = null, $type, PHPWord_Style_TableFull $style)
|
||||||
$brdSz = $style->getBorderSize();
|
{
|
||||||
$brdCol = $style->getBorderColor();
|
$brdSz = $style->getBorderSize();
|
||||||
$bgColor = $style->getBgColor();
|
$brdCol = $style->getBorderColor();
|
||||||
|
$bgColor = $style->getBgColor();
|
||||||
|
|
||||||
$bTop = (!is_null($brdSz[0])) ? true : false;
|
$bTop = (!is_null($brdSz[0])) ? true : false;
|
||||||
$bLeft = (!is_null($brdSz[1])) ? true : false;
|
$bLeft = (!is_null($brdSz[1])) ? true : false;
|
||||||
$bRight = (!is_null($brdSz[2])) ? true : false;
|
$bRight = (!is_null($brdSz[2])) ? true : false;
|
||||||
$bBottom = (!is_null($brdSz[3])) ? true : false;
|
$bBottom = (!is_null($brdSz[3])) ? true : false;
|
||||||
$borders = ($bTop || $bLeft || $bRight || $bBottom) ? true : false;
|
$borders = ($bTop || $bLeft || $bRight || $bBottom) ? true : false;
|
||||||
|
|
||||||
$objWriter->startElement('w:tblStylePr');
|
$objWriter->startElement('w:tblStylePr');
|
||||||
$objWriter->writeAttribute('w:type', $type);
|
$objWriter->writeAttribute('w:type', $type);
|
||||||
|
|
||||||
$objWriter->startElement('w:tcPr');
|
$objWriter->startElement('w:tcPr');
|
||||||
if(!is_null($bgColor)) {
|
if (!is_null($bgColor)) {
|
||||||
$objWriter->startElement('w:shd');
|
$objWriter->startElement('w:shd');
|
||||||
$objWriter->writeAttribute('w:val', 'clear');
|
$objWriter->writeAttribute('w:val', 'clear');
|
||||||
$objWriter->writeAttribute('w:color', 'auto');
|
$objWriter->writeAttribute('w:color', 'auto');
|
||||||
$objWriter->writeAttribute('w:fill', $bgColor);
|
$objWriter->writeAttribute('w:fill', $bgColor);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
$objWriter->startElement('w:tcBorders');
|
$objWriter->startElement('w:tcBorders');
|
||||||
if($bTop) {
|
if ($bTop) {
|
||||||
$objWriter->startElement('w:top');
|
$objWriter->startElement('w:top');
|
||||||
$objWriter->writeAttribute('w:val', 'single');
|
$objWriter->writeAttribute('w:val', 'single');
|
||||||
$objWriter->writeAttribute('w:sz', $brdSz[0]);
|
$objWriter->writeAttribute('w:sz', $brdSz[0]);
|
||||||
$objWriter->writeAttribute('w:color', $brdCol[0]);
|
$objWriter->writeAttribute('w:color', $brdCol[0]);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
if($bLeft) {
|
if ($bLeft) {
|
||||||
$objWriter->startElement('w:left');
|
$objWriter->startElement('w:left');
|
||||||
$objWriter->writeAttribute('w:val', 'single');
|
$objWriter->writeAttribute('w:val', 'single');
|
||||||
$objWriter->writeAttribute('w:sz', $brdSz[1]);
|
$objWriter->writeAttribute('w:sz', $brdSz[1]);
|
||||||
$objWriter->writeAttribute('w:color', $brdCol[1]);
|
$objWriter->writeAttribute('w:color', $brdCol[1]);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
if($bRight) {
|
if ($bRight) {
|
||||||
$objWriter->startElement('w:right');
|
$objWriter->startElement('w:right');
|
||||||
$objWriter->writeAttribute('w:val', 'single');
|
$objWriter->writeAttribute('w:val', 'single');
|
||||||
$objWriter->writeAttribute('w:sz', $brdSz[2]);
|
$objWriter->writeAttribute('w:sz', $brdSz[2]);
|
||||||
$objWriter->writeAttribute('w:color', $brdCol[2]);
|
$objWriter->writeAttribute('w:color', $brdCol[2]);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
if($bBottom) {
|
if ($bBottom) {
|
||||||
$objWriter->startElement('w:bottom');
|
$objWriter->startElement('w:bottom');
|
||||||
$objWriter->writeAttribute('w:val', 'single');
|
$objWriter->writeAttribute('w:val', 'single');
|
||||||
$objWriter->writeAttribute('w:sz', $brdSz[3]);
|
$objWriter->writeAttribute('w:sz', $brdSz[3]);
|
||||||
$objWriter->writeAttribute('w:color', $brdCol[3]);
|
$objWriter->writeAttribute('w:color', $brdCol[3]);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private function _writeDocDefaults(PHPWord_Shared_XMLWriter $objWriter = null) {
|
private function _writeDocDefaults(PHPWord_Shared_XMLWriter $objWriter = null)
|
||||||
$fontName = $this->_document->getDefaultFontName();
|
{
|
||||||
$fontSize = $this->_document->getDefaultFontSize();
|
$fontName = $this->_document->getDefaultFontName();
|
||||||
|
$fontSize = $this->_document->getDefaultFontSize();
|
||||||
|
|
||||||
$objWriter->startElement('w:docDefaults');
|
$objWriter->startElement('w:docDefaults');
|
||||||
$objWriter->startElement('w:rPrDefault');
|
$objWriter->startElement('w:rPrDefault');
|
||||||
$objWriter->startElement('w:rPr');
|
$objWriter->startElement('w:rPr');
|
||||||
|
|
||||||
$objWriter->startElement('w:rFonts');
|
$objWriter->startElement('w:rFonts');
|
||||||
$objWriter->writeAttribute('w:ascii', $fontName);
|
$objWriter->writeAttribute('w:ascii', $fontName);
|
||||||
$objWriter->writeAttribute('w:hAnsi', $fontName);
|
$objWriter->writeAttribute('w:hAnsi', $fontName);
|
||||||
$objWriter->writeAttribute('w:eastAsia', $fontName);
|
$objWriter->writeAttribute('w:eastAsia', $fontName);
|
||||||
$objWriter->writeAttribute('w:cs', $fontName);
|
$objWriter->writeAttribute('w:cs', $fontName);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->startElement('w:sz');
|
$objWriter->startElement('w:sz');
|
||||||
$objWriter->writeAttribute('w:val', $fontSize);
|
$objWriter->writeAttribute('w:val', $fontSize);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->startElement('w:szCs');
|
$objWriter->startElement('w:szCs');
|
||||||
$objWriter->writeAttribute('w:val', $fontSize);
|
$objWriter->writeAttribute('w:val', $fontSize);
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
|
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
$objWriter->endElement();
|
$objWriter->endElement();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
@ -26,18 +26,21 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
abstract class PHPWord_Writer_Word2007_WriterPart {
|
abstract class PHPWord_Writer_Word2007_WriterPart
|
||||||
private $_parentWriter;
|
{
|
||||||
|
private $_parentWriter;
|
||||||
|
|
||||||
public function setParentWriter(PHPWord_Writer_IWriter $pWriter = null) {
|
public function setParentWriter(PHPWord_Writer_IWriter $pWriter = null)
|
||||||
$this->_parentWriter = $pWriter;
|
{
|
||||||
}
|
$this->_parentWriter = $pWriter;
|
||||||
|
}
|
||||||
|
|
||||||
public function getParentWriter() {
|
public function getParentWriter()
|
||||||
if (!is_null($this->_parentWriter)) {
|
{
|
||||||
return $this->_parentWriter;
|
if (!is_null($this->_parentWriter)) {
|
||||||
} else {
|
return $this->_parentWriter;
|
||||||
throw new Exception("No parent PHPWord_Writer_IWriter assigned.");
|
} else {
|
||||||
}
|
throw new Exception("No parent PHPWord_Writer_IWriter assigned.");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue