/** * @param ZendPage $page * @param Text $element * * @throws \Exception */ private function drawText(ZendPage $page, Text $element) { $fontStyle = $element->getFontStyle(); $font = $this->getZendFont($fontStyle); $page->saveGS(); if ($element->getRotation() > 0) { $page->rotate($element->getX(), $element->getY(), -$element->getRotation() / 180.0 * pi()); } list($x, $y) = $this->computeTextPos($element, $font); $page->setFont($font, $fontStyle->getSize()); $this->drawFormattedText($page, $font->encodeString($element->getText(), 'UTF-8'), $x, $y, $element); $page->restoreGS(); }
/** * @param SimpleXMLElement $svg * @param Text $element * @param float $yBase * * @return SimpleXMLElement */ private function addText(SimpleXMLElement $svg, Text $element, $yBase) { $x = $element->getX(); $y = $yBase - $element->getY(); if ($element->getRotation() > 0) { $group = $svg->addChild('g'); $group->addAttribute("transform", "translate({$x}, {$y}) rotate({$element->getRotation()})"); $text = $group->addChild("text", $element->getText()); $text->addAttribute("x", 0); $text->addAttribute("y", 0); } else { $text = $svg->addChild("text", $element->getText()); $text->addAttribute("x", $x); $text->addAttribute("y", $y); } $this->addTextStyle($text, $element); return $text; }