#196: RTF link styling fixes

This commit is contained in:
Ivan Lanin 2014-05-14 00:42:05 +07:00
parent 1ee43da4de
commit e03e121e85
5 changed files with 15 additions and 18 deletions

View File

@ -17,7 +17,6 @@
namespace PhpOffice\PhpWord\Writer; namespace PhpOffice\PhpWord\Writer;
use PhpOffice\PhpWord\Element\Text;
use PhpOffice\PhpWord\Exception\Exception; use PhpOffice\PhpWord\Exception\Exception;
use PhpOffice\PhpWord\PhpWord; use PhpOffice\PhpWord\PhpWord;
use PhpOffice\PhpWord\Shared\Drawing; use PhpOffice\PhpWord\Shared\Drawing;

View File

@ -51,26 +51,29 @@ class AbstractElement extends \PhpOffice\PhpWord\Writer\HTML\Element\AbstractEle
protected function getStyles() protected function getStyles()
{ {
/** @var \PhpOffice\PhpWord\Writer\RTF $parentWriter Scrutinizer type hint */ /** @var \PhpOffice\PhpWord\Writer\RTF $parentWriter Scrutinizer type hint */
/** @var \PhpOffice\PhpWord\Element\Text $element Scrutinizer type hint */
$parentWriter = $this->parentWriter; $parentWriter = $this->parentWriter;
$element = $this->element;
// Font style // Font style
if (method_exists($this->element, 'getFontStyle')) { if (method_exists($element, 'getFontStyle')) {
$this->fontStyle = $this->element->getFontStyle(); $this->fontStyle = $element->getFontStyle();
if (is_string($this->fontStyle)) { if (is_string($this->fontStyle)) {
$this->fontStyle = Style::getStyle($this->fontStyle); $this->fontStyle = Style::getStyle($this->fontStyle);
} }
} }
// Paragraph style // Paragraph style
if (method_exists($this->element, 'getParagraphStyle')) { if (method_exists($element, 'getParagraphStyle')) {
$this->paragraphStyle = $this->element->getParagraphStyle(); $this->paragraphStyle = $element->getParagraphStyle();
if (is_string($this->paragraphStyle)) { if (is_string($this->paragraphStyle)) {
$this->paragraphStyle = Style::getStyle($this->paragraphStyle); $this->paragraphStyle = Style::getStyle($this->paragraphStyle);
} }
if ($this->paragraphStyle !== null && !$this->withoutP) { if ($this->paragraphStyle !== null && !$this->withoutP) {
if ($parentWriter->getLastParagraphStyle() != $this->element->getParagraphStyle()) { if ($parentWriter->getLastParagraphStyle() != $element->getParagraphStyle()) {
$parentWriter->setLastParagraphStyle($this->element->getParagraphStyle()); $parentWriter->setLastParagraphStyle($element->getParagraphStyle());
} else { } else {
$parentWriter->setLastParagraphStyle(); $parentWriter->setLastParagraphStyle();
$this->paragraphStyle = null; $this->paragraphStyle = null;
@ -147,7 +150,7 @@ class AbstractElement extends \PhpOffice\PhpWord\Writer\HTML\Element\AbstractEle
if ($this->fontStyle->getName() != null) { if ($this->fontStyle->getName() != null) {
$fontIndex = array_search($this->fontStyle->getName(), $parentWriter->getFontTable()); $fontIndex = array_search($this->fontStyle->getName(), $parentWriter->getFontTable());
if ($fontIndex !== false) { if ($fontIndex !== false) {
$styleWriter->setNameIndex($fontIndex + 1); $styleWriter->setNameIndex($fontIndex);
} }
} }

View File

@ -17,8 +17,6 @@
namespace PhpOffice\PhpWord\Writer\RTF\Element; namespace PhpOffice\PhpWord\Writer\RTF\Element;
use PhpOffice\PhpWord\Shared\String;
/** /**
* ListItem element RTF writer; extends from text * ListItem element RTF writer; extends from text
* *

View File

@ -17,10 +17,6 @@
namespace PhpOffice\PhpWord\Writer\RTF\Element; namespace PhpOffice\PhpWord\Writer\RTF\Element;
use PhpOffice\PhpWord\Element\Text as TextElement;
use PhpOffice\PhpWord\Shared\String;
use PhpOffice\PhpWord\Style;
/** /**
* Text element RTF writer * Text element RTF writer
* *
@ -35,8 +31,11 @@ class Text extends AbstractElement
*/ */
public function write() public function write()
{ {
/** @var \PhpOffice\PhpWord\Element\Text $element Scrutinizer type hint */
$elementClass = str_replace('\\Writer\\RTF', '', get_class($this)); $elementClass = str_replace('\\Writer\\RTF', '', get_class($this));
if (!$this->element instanceof $elementClass) { $element = $this->element;
if (!$element instanceof $elementClass) {
return; return;
} }
@ -46,7 +45,7 @@ class Text extends AbstractElement
$content .= $this->writeOpening(); $content .= $this->writeOpening();
$content .= '{'; $content .= '{';
$content .= $this->writeFontStyle(); $content .= $this->writeFontStyle();
$content .= $this->writeText($this->element->getText()); $content .= $this->writeText($element->getText());
$content .= '}'; $content .= '}';
$content .= $this->writeClosing(); $content .= $this->writeClosing();

View File

@ -17,8 +17,6 @@
namespace PhpOffice\PhpWord\Writer\RTF\Element; namespace PhpOffice\PhpWord\Writer\RTF\Element;
use PhpOffice\PhpWord\Shared\String;
/** /**
* Title element RTF writer; extends from text * Title element RTF writer; extends from text
* *