1

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

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

但是,这种方法在几个方面存在问题,最重要的是在处理向图标添加笔划时,因为随着笔划的增加,图标的边界框会发生不可预测的变化,因此我希望在 SVG 本身内绘制字体。

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

提前谢谢了。

4

0 回答 0