Inkscape で作成した SVG 要素があります。次に、その SVG を取得し、XML データの変換に使用される XSL-FO スタイルシートの一部として配置し、IBEX レンダラーを通過して PDF を作成します (通常は印刷されます)。例として、svg/stylesheet に次のような要素があります (Inkscape エクスポートによる余分なノイズ)。
<text x="114" x="278.36218" id="id1" xml:space="preserve" style="big-long-style-string-from-inkscape">
<tspan x="114" y="278.36218" id="id2" style="style-string">
<xsl:value-of select="Alias1"/>
</tspan>
</text>
私の問題は、このテキスト領域がどのくらいの大きさになるかわからないという事実にあります。この特定のものについては、SVG のテキストの右側に画像があります。ただし、この文字列が W の最大許容数である場合、長すぎて画像を超えてしまいます。私が(完璧な世界で)望むのは、テキストブロックの幅を何ピクセルにするかを指定し、その領域に収まるまでテキストを自動的に小さくする方法です。それができない場合は、テキストを切り捨てることもできます。最後の手段として、固定幅フォントを使用し、XML 生成時に自分で文字列の切り捨てを行います。
私はSVGのドキュメントを調べてflowRegions
、パスと同様に少し調べましたが、どちらも私が望むものではないようです(おそらくそうです)。それが役立つ場合は、Inkscape が生成するスタイル文字列を次に示します。
"font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
助けてくれてありがとう。