1

私は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(テキスト要素の) 属性を使用して end に設定しようとしましたが、基本的にはビューポートの外に完全に配置したように見えました。

私は何を間違っていますか?

4

1 に答える 1

0

私のソリューションが最も効率的ではないことは確かですが、このアプローチを放棄し、ImageMagick で画像を作成してから、TCPDF の Image() 機能を使用しました。

ImageMagick の変換機能とラベル機能は、テキストの配置とレンダリングに必要な以上の機能を備えています。この質問を続ける価値があるかどうかはわかりませんが、おそらく将来誰かを助けるでしょう.

于 2013-01-02T16:36:38.223 に答える