x = $x; $this->y = $y; $this->text = $text; $this->fontSize = $fontSize; $this->setAdditionalStyle([ 'font-size' => $this->fontSize, 'font-family' => 'Ubuntu, Calibri, Trebuchet MS, Helvetica, Verdana, sans-serif', 'font-weight' => $this->fontWeight, 'font-stretch' => $this->fontStretch, 'font-style' => 'normal', 'text-anchor' => $this->alignment ]); } /** * Set the font size of the svg text element * * @param string $size The font size including a unit * * @return $this Fluid interface */ public function setFontSize($size) { $this->fontSize = $size; return $this; } /** * Set the text alignment with one of the ALIGN_* constants * * @param String $align Value how to align * * @return $this Fluid interface */ public function setAlignment($align) { $this->alignment = $align; return $this; } /** * Set the weight of the current font * * @param string $weight The weight of the string * * @return $this Fluid interface */ public function setFontWeight($weight) { $this->fontWeight = $weight; return $this; } /** * Create the SVG representation from this Drawable * * @param RenderContext $ctx The context to use for rendering * * @return DOMElement The SVG Element */ public function toSvg(RenderContext $ctx) { list($x, $y) = $ctx->toAbsolute($this->x, $this->y); $text = $ctx->getDocument()->createElement('text'); $text->setAttribute('x', Format::formatSVGNumber($x - 15)); $id = $this->id ?? uniqid('text-'); $text->setAttribute('id', $id); $this->setId($id); $text->setAttribute('y', Format::formatSVGNumber($y)); $text->appendChild(new DOMText($this->text)); $style = new DOMDocument(); $style->loadHTML($this->getStyle()); $text->appendChild( $text->ownerDocument->importNode( $style->getElementsByTagName('style')->item(0), true ) ); return $text; } }