.NET 界隈でのPDF生成ライブラリとして人気の PdfSharp における XGraphics.DrawString
メソッドを活用した文字列描画について、XStringFormat
クラスを使った座標指定についての一部を記載します。
1. XStringFormats.TopLeft
このオプションを使用すると、指定した XRect
の左上隅が文字列の開始位置として解釈されます。
サンプルコード:
var gfx = XGraphics.FromPdfPage(page);
var font = new XFont("Arial", 12, XFontStyle.Regular);
gfx.DrawString("Hello, PdfSharp!", font, XBrushes.Black, new XRect(100, 50, page.Width, page.Height), XStringFormats.TopLeft);
2. XStringFormats.TopRight
このオプションを使用すると、指定した XRect
の右上隅が文字列の開始位置として解釈されます。しかし、文字列の描画範囲を完璧にコントロールするためには、XRect
の幅や座標の調整が必要になる場合があります。
サンプルコード:
var gfx = XGraphics.FromPdfPage(page);
var font = new XFont("Arial", 12, XFontStyle.Regular);
gfx.DrawString("Hello, PdfSharp!", font, XBrushes.Black, new XRect(-23, 776, page.Width, page.Height), XStringFormats.TopRight);
注意点
- Y座標の指定: PdfSharpでは、ページの左上隅が原点(0,0)として扱われ、Y座標は上から下へ増加します。
- フォントの影響: 使用するフォントのサイズやスタイルによって、文字列の描画位置が微妙に変わることがあります。
- ページの境界: 文字列を描画する際、ページの境界を超えると、文字列が切り取られる可能性があります。
-
XRectの調整: 特に
XStringFormats.TopRight
を使用する場合、文字列が適切に描画されるようにXRect
のx座標や幅を調整することが必要です。
まとめ
PdfSharpで文字列を描画する際、XStringFormat
とXRect
を適切に使用することで、文字列の配置を細かく制御することができます。しかし、座標指定や文字列の描画範囲の調整には注意が必要です。この記事が、PdfSharpでの文字列描画の際の参考になれば幸いです。