如何根据边界框和特定单词相对调整SVG字体的大小

时间:2012-12-20 11:05:42

标签: java svg batik

我需要使用SVG在矩形内绘制一些文本。我有路径定义的图标,我根据图标的形状为每个图标任意选择文本画布区域。我需要做的是绘制一些文本(可以随每个请求更改),使文本在我的文本画布区域中居中(水平和垂直),并调整使用的字体大小,使其完全适合画布。

到目前为止,我一直在做的是使用Batik生成原始图像,然后使用java.awt在其上绘制文本。这是通过以80%的画布区域的字体高度开始然后检查渲染字体的宽度(使用字体度量)和 - 如果它大于画布区域的宽度 - 来减少的。它一次只有5%,直到它适合。如果它第一次适合,则不涉及循环,因此它仍然相对有效(至少在可预见的未来)。

这种方法虽然落在了几个方面,最重要的是处理向图标添加笔划时,因为图标的边界框随着笔划的增加而变化不可预测,因此我希望在SVG中绘制字体本身。

在SVG / Batik中,我可以使用类似的方法调整字体大小,直到它适合吗?我该怎么做?有人能为我指出一个很好的资源吗?我还没有在Google / Stackoverflow上找到合适的答案,但如果我错过了一个明显的答案,请转发给我。

非常感谢提前。

0 个答案:

没有答案