2 つの行の違いはleading
. 独自の行送りを選択できますが、1.5 倍のフォント サイズを使用するのが習慣です。さまざまなフォント サイズを使用して、自分で 1 行ずつ描画しているため、そのフォント サイズに基づいて Y 値を調整する必要があります。追加するテキストのベースラインとして Y 値を使用することに注意してください。そのColumnText.showTextAligned()
ため、フォント サイズが 12pt のテキストがある場合は、18pt の行送りを考慮する必要があります。フォント サイズが 8pt の場合は、必ず 12pt にしてください。
それは簡単な解決策です:「慣習」に基づいています。ある特定の要素が占める水平方向のスペースを本当に知りたい場合は、私の本の図 3.7 で行われているように、アセンダーとディセンダーを計算する必要があります。コードはこちらにあります。がbf
フォント (BaseFont
オブジェクト)、text
がテキスト (a String
)、size
がフォント サイズ (a float
) の場合、テキストの高さは次のようになりますheight
。
float aboveBaseline = bf.getAscentPoint(text, size);
float underBaseline = bf.getDescentPoint(text, size);
float height = aboveBaseline - underBaseline;
y
Y 座標が使用される場合は、とshowTextAligned()
の間のスペースを確保してください。これが正確な解決策です。y + aboveBaseline
y + underBaseline
document.bottom() - 20
やや奇妙に見えることに注意してください。document.bottom() + 20
PDF座標系のY軸が下向きではなく上向きであることを期待します。