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;
yY 座標が使用される場合は、とshowTextAligned()の間のスペースを確保してください。これが正確な解決策です。y + aboveBaseliney + underBaseline
document.bottom() - 20やや奇妙に見えることに注意してください。document.bottom() + 20PDF座標系のY軸が下向きではなく上向きであることを期待します。