我有一个用 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"
在此先感谢您的帮助。