initLocalSizeAttribute($node, "transform"); $transform = $this->getContext("transform"); $index = strpos($transform, "("); $func = substr($transform, 0, $index); $paramStr = substr($transform, $index+1, strlen($transform)-$index-2); $params = explode(",", $paramStr); $pdf = $this->getPdf(); $xOrig = $this->getContext("xOrig"); $yOrig = $this->getContext("yOrig"); if ($func) { switch ($func) { case "translate": $xdiff = $this->calcInternalValue($params[0]); $ydiff = $this->calcInternalValue($params[1]); $this->setContext("xOrig", $xOrig+$xdiff); $this->setContext("yOrig", $yOrig+$ydiff ); //echo "translate:".$xdiff.":".$ydiff."
"; break; case "rotate": $angle = $params[0] * -1; if (sizeof($params) > 1) { $pdf->Rotate($angle, $params[1], $params[2]); } else { $x = $this->getContext("x")+$xOrig; $y = $this->getContext("y")+$yOrig; $pdf->Rotate($angle, $x, $y); } break; // case "skewX": // case "skewY": default: echo "Function not supported:$func
"; } } $this->processChildNodes($node, FO_SVG::$CHILDNODES); //restore group options switch ($func) { case "translate": $this->setContext("xOrig", $xOrig); $this->setContext("yOrig", $yOrig); break; case "rotate": $pdf->Rotate(0); break; // case "skewX": // case "skewY": } } } ?>