[C#] PageSettings の Bounds と PrintableArea のちがい
2007-3-19 10:20
Visual Studio 2005 C# で印刷の話。
PrintPageEventArgs クラスの PageSettings には様々なプロパティがあります。Landscape は用紙の縦横の向きを表わし、Landscape = true
のとき、用紙は横向きとなります。このとき、Bounds の Width プロパティ、Height プロパティは用紙の向きが考慮されて入れ替わります。
一方、PrintableArea の Width と Height は Landscape の値が考慮されませんので、プログラム側で考慮しなければならないようです。ヘルプには
PrintableArea プロパティは、用紙方向が横向きまたは縦向きのどちらであっても、正しい値を返します。
と書かれていますが、ここでの「正しい」は用紙の向きを考慮するという意味ではなくて、用紙の向きを無視して本来の値を返すという意味らしいです。
ちなみに Bounds と PrintableArea でいう印刷可能領域とは、文字通りプリンタでの印刷が可能な領域という意味です。Margins で指定した余白の内側という意味ではないので、Bounds の値から Margins の値を引いて印刷内容を計算する必要があります。もちろん余白に印字したい場合は別ですが。
コメントはまだありません
No comments yet.
Sorry, the comment form is closed at this time.