SVG を使用して、長方形の中にテキストを描画する必要があります。パスで定義されたアイコンがあり、アイコンの形状に基づいて、各アイコンのテキスト キャンバス領域を任意に選択しました。私がする必要があるのは、テキストがテキストキャンバス領域内で (水平方向および垂直方向に) 中央に配置されるように、テキスト (要求ごとに変更される可能性があります) を描画し、使用するフォントのサイズを変更して、テキストキャンバス領域内に完全に収まるようにすることです。キャンバス。
私がこれまで行ってきたことは、Batik を使用して生の画像を生成し、次に java.awt を使用してその上にテキストを描画することです。これは、キャンバス領域の 80% の font-height から開始し、レンダリングされたフォントの幅を (フォント メトリックを使用して) チェックし、キャンバス領域の幅よりも大きい場合は、5% 縮小することによって行われました。収まるまで一度に。最初に適合する場合、ループは含まれないため、比較的効率的です (少なくとも当面の間)。
ただし、このアプローチはいくつかの領域に当てはまりますが、最も重要なのはアイコンにストロークを追加する場合です。ストロークが増えるとアイコンのバウンディング ボックスが予期せず変化するため、SVG 自体内にフォントを描画することを望んでいました。
SVG/Batikで、フォントが収まるまで同様の方法でサイズを変更できますか? どうすればいいですか?誰かがこれのための良いリソースを教えてくれますか? Google/Stackoverflow で適切な回答が見つかりませんでしたが、明らかな回答を見逃した場合は、代わりにそこに送ってください。
よろしくお願いします。