我正在使用TCPDF,特别是ImageSVG()函数将一些文本放在一个框中。我试图让它正确,但我似乎无法做到正确。我还需要它来拉伸文本内部,使其适合包含的矩形。到目前为止,我有这段代码:
$pdf->ImageSVG('@<svg width="'.$line4_w.'px" height="'.$line4_h.'px" version="1.1"
viewBox="0 0 '.$line4_w.' '.$line4_h.'" preserveAspectRatio="none"
xmlns="http://www.w3.org/2000/svg">
<rect x="0" y="0" width="'.$line4_w.'" height="'.$line4_h.'"
fill="'.$bgcolor.'" />
<!-- A text string that spans most of the viewport -->
<text x="40" y="50" font-size="40" font-family="Verdana" style="fill:'.$color_select_text_main.'" >'.$content.'</text>
</svg>', $x=$line4_x+$text_x, $y=$line4_y, 0, 0, $svgLink = '', $svgAlign = 'R', $svgPalign = '', $svgBorder = 0, $svgFits = true);
宽度和高度值是可变的,内容字符串也是如此。
我使用了此处的代码作为起点:
http://www.w3.org/TR/SVG/coords.html#ExampleViewBox
但我的问题基本上是当我将$ content的字符串长度更改为故意溢出容器时,文本根本没有缩小,剩下的文本就被切断了。
关于理由,我试图使用text-anchor
属性(文本元素),将其设置为结束,它基本上似乎只是将它完全放在视口之外。
我做错了什么?
答案 0 :(得分:0)
我很确定我的解决方案不是最有效的,但我放弃了这种方法,使用ImageMagick制作图像,然后使用TCPDF的Image()功能。
ImageMagick的转换和标签功能实际上能够完成比定位和渲染文本所需的更多功能。不确定这个问题是否值得保留,但也许它将来会帮助某人。