1: <?php
2: /**
3: * PHPWord
4: *
5: * Copyright (c) 2013 PHPWord
6: *
7: * This library is free software; you can redistribute it and/or
8: * modify it under the terms of the GNU Lesser General Public
9: * License as published by the Free Software Foundation; either
10: * version 2.1 of the License, or (at your option) any later version.
11: *
12: * This library is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15: * Lesser General Public License for more details.
16: *
17: * You should have received a copy of the GNU Lesser General Public
18: * License along with this library; if not, write to the Free Software
19: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20: *
21: * @category PHPWord
22: * @package PHPWord
23: * @copyright Copyright (c) 2013 PHPWord
24: * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25: * @version 0.7.0
26: */
27:
28: /**
29: * PHPWord_Section_TextRun
30: */
31: class PHPWord_Section_TextRun
32: {
33:
34: /**
35: * Paragraph style
36: *
37: * @var PHPWord_Style_Font
38: */
39: private $_styleParagraph;
40:
41: /**
42: * Text collection
43: *
44: * @var array
45: */
46: private $_elementCollection;
47:
48:
49: /**
50: * Create a new TextRun Element
51: */
52: public function __construct($styleParagraph = null)
53: {
54: $this->_elementCollection = array();
55:
56: // Set paragraph style
57: if (is_array($styleParagraph)) {
58: $this->_styleParagraph = new PHPWord_Style_Paragraph();
59:
60: foreach ($styleParagraph as $key => $value) {
61: if (substr($key, 0, 1) != '_') {
62: $key = '_' . $key;
63: }
64: $this->_styleParagraph->setStyleValue($key, $value);
65: }
66: } else {
67: $this->_styleParagraph = $styleParagraph;
68: }
69: }
70:
71:
72: /**
73: * Add a Text Element
74: *
75: * @var string $text
76: * @var mixed $styleFont
77: * @return PHPWord_Section_Text
78: */
79: public function addText($text = null, $styleFont = null)
80: {
81: if (!PHPWord_Shared_String::IsUTF8($text)) {
82: $text = utf8_encode($text);
83: }
84: $text = new PHPWord_Section_Text($text, $styleFont);
85: $this->_elementCollection[] = $text;
86: return $text;
87: }
88:
89: /**
90: * Add a Link Element
91: *
92: * @param string $linkSrc
93: * @param string $linkName
94: * @param mixed $styleFont
95: * @return PHPWord_Section_Link
96: */
97: public function addLink($linkSrc, $linkName = null, $styleFont = null)
98: {
99: $linkSrc = utf8_encode($linkSrc);
100: if (!is_null($linkName)) {
101: $linkName = utf8_encode($linkName);
102: }
103:
104: $link = new PHPWord_Section_Link($linkSrc, $linkName, $styleFont);
105: $rID = PHPWord_Media::addSectionLinkElement($linkSrc);
106: $link->setRelationId($rID);
107:
108: $this->_elementCollection[] = $link;
109: return $link;
110: }
111:
112: /**
113: * Add a TextBreak Element
114: *
115: * @param int $count
116: */
117: public function addTextBreak($count = 1) {
118: for($i=1; $i<=$count; $i++) {
119: $this->_elementCollection[] = new PHPWord_Section_TextBreak();
120: }
121: }
122: /**
123: * Get TextRun content
124: *
125: * @return string
126: */
127: public function getElements()
128: {
129: return $this->_elementCollection;
130: }
131:
132: /**
133: * Get Paragraph style
134: *
135: * @return PHPWord_Style_Paragraph
136: */
137: public function getParagraphStyle()
138: {
139: return $this->_styleParagraph;
140: }
141: }