Skip to content

Commit 0869bdc

Browse files
committed
Add support for reading <w:tab/> element in runs. Internaly encoding it as "\t".
1 parent 7fe32e6 commit 0869bdc

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

src/PhpWord/Reader/Word2007/AbstractPart.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,9 +241,11 @@ protected function readRun(XMLReader $xmlReader, \DOMElement $domNode, $parent,
241241
if ($xmlReader->elementExists('w:br', $domNode)) {
242242
$parent->addTextBreak();
243243
}
244-
if ($xmlReader->elementExists('w:t', $domNode)) {
244+
if ($xmlReader->elementExists('w:t', $domNode) || $xmlReader->elementExists('w:tab', $domNode)) {
245245
// TextRun
246-
if ($domNode->parentNode->nodeName == 'w:del') {
246+
if ($xmlReader->elementExists('w:tab', $domNode)) {
247+
$textContent = "\t";
248+
} elseif ($domNode->parentNode->nodeName == 'w:del') {
247249
$textContent = $xmlReader->getValue('w:delText', $domNode);
248250
} else {
249251
$textContent = $xmlReader->getValue('w:t', $domNode);

tests/PhpWord/Reader/Word2007/ElementTest.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,4 +83,22 @@ public function testReadListItemRunWithFormatting()
8383
$this->assertEquals('bold', $listElements[2]->getText());
8484
$this->assertTrue($listElements[2]->getFontStyle()->getBold());
8585
}
86+
87+
/**
88+
* Test reading of tab
89+
*/
90+
public function testReadTab()
91+
{
92+
$documentXml = '<w:p>
93+
<w:r>
94+
<w:tab/>
95+
</w:r>
96+
</w:p>';
97+
98+
$phpWord = $this->getDocumentFromString($documentXml);
99+
100+
$elements = $this->get($phpWord->getSections(), 0)->getElements();
101+
$this->assertInstanceOf('PhpOffice\PhpWord\Element\Text', $elements[0]);
102+
$this->assertEquals("\t", $elements[0]->getText());
103+
}
86104
}

0 commit comments

Comments
 (0)