support internal link in addHtml method

This commit is contained in:
Sam 2018-04-07 11:24:52 +02:00
parent 9a91d54e10
commit ca82e19bba
2 changed files with 17 additions and 1 deletions

View File

@ -664,6 +664,10 @@ class Html
}
self::parseInlineStyle($node, $styles['font']);
return $element->addLink($target, $node->textContent, $styles['font'], $styles['paragraph']);
if(strpos($target, '#') === 0) {
return $element->addLink(substr($target, 1), $node->textContent, $styles['font'], $styles['paragraph'], true);
} else {
return $element->addLink($target, $node->textContent, $styles['font'], $styles['paragraph']);
}
}
}

View File

@ -353,5 +353,17 @@ class HtmlTest extends \PHPUnit\Framework\TestCase
$this->assertTrue($doc->elementExists('/w:document/w:body/w:p/w:hyperlink'));
$this->assertEquals('link text', $doc->getElement('/w:document/w:body/w:p/w:hyperlink/w:r/w:t')->nodeValue);
$phpWord = new \PhpOffice\PhpWord\PhpWord();
$section = $phpWord->addSection();
$section->addBookmark('bookmark');
$html = '<p><a href="#bookmark">internal link text</a></p>';
Html::addHtml($section, $html);
$doc = TestHelperDOCX::getDocument($phpWord, 'Word2007');
$this->assertTrue($doc->elementExists('/w:document/w:body/w:p/w:hyperlink'));
$this->assertTrue($doc->getElement('/w:document/w:body/w:p/w:hyperlink')->hasAttribute('w:anchor'));
$this->assertEquals('bookmark', $doc->getElement('/w:document/w:body/w:p/w:hyperlink')->getAttribute('w:anchor'));
}
}