/** * Creates the styles with $styleAttributes for the given $odtElement. * * @param ezcDocumentOdtStyleInformation $styleInfo * @param DOMElement $odtElement * @param array $styleAttributes * @return void */ public function createStyle(ezcDocumentOdtStyleInformation $styleInfo, DOMElement $odtElement, array $styleAttributes) { $styleName = $this->getUniqueStyleName($odtElement->localName); $style = $styleInfo->automaticStyleSection->appendChild($styleInfo->automaticStyleSection->ownerDocument->createElementNS(ezcDocumentOdt::NS_ODT_STYLE, 'style:style')); $style->setAttributeNS(ezcDocumentOdt::NS_ODT_STYLE, 'style:family', 'text'); $style->setAttributeNS(ezcDocumentOdt::NS_ODT_STYLE, 'style:name', $styleName); $odtElement->setAttributeNS(ezcDocumentOdt::NS_ODT_TEXT, 'text:style-name', $styleName); $this->textPropertyGenerator->createProperty($style, $styleAttributes); }
/** * Creates the styles with $styleAttributes for the given $odtElement. * * @param ezcDocumentOdtStyleInformation $styleInfo * @param DOMElement $odtElement * @param array $styleAttributes */ public function createStyle(ezcDocumentOdtStyleInformation $styleInfo, DOMElement $odtElement, array $styleAttributes) { $styleName = $this->getUniqueStyleName($odtElement->localName); $style = $styleInfo->automaticStyleSection->appendChild($styleInfo->automaticStyleSection->ownerDocument->createElementNS(ezcDocumentOdt::NS_ODT_STYLE, 'style:style')); $style->setAttributeNS(ezcDocumentOdt::NS_ODT_STYLE, 'style:family', 'paragraph'); $style->setAttributeNS(ezcDocumentOdt::NS_ODT_STYLE, 'style:name', $styleName); $odtElement->setAttributeNS(ezcDocumentOdt::NS_ODT_TEXT, 'text:style-name', $styleName); // Setting the margins in a list contained paragraph results in // overwriting the list margin. Therefore we skip paragraph property // generation completely here. // @TODO: Does this have any strange effects? Find a nicer solution? if ($odtElement->parentNode->localName !== 'list-item') { $this->paragraphPropertyGenerator->createProperty($style, $styleAttributes); } $this->textPropertyGenerator->createProperty($style, $styleAttributes); }
public function testCreateProperty() { $gen = new ezcDocumentOdtStyleTextPropertyGenerator($this->styleConverters); $parent = $this->getDomElementFixture(); $gen->createProperty($parent, array('font-name' => new ezcDocumentPcssStyleStringValue('Font Name'))); $this->assertPropertyExists(ezcDocumentOdt::NS_ODT_STYLE, 'text-properties', array(array(ezcDocumentOdt::NS_ODT_STYLE, 'font-name')), $parent); }