C# で PageSettings の Bounds と PrintableArea のちがい

2007-3-19 10:20

Visual Studio 2005 C# で印刷の話。

PrintPageEventArgs クラスの PageSettings には様々なプロパティがあります。Landscape は用紙の縦横の向きを表わし、Landscape = true のとき、用紙は横向きとなります。このとき、BoundsWidth プロパティ、Height プロパティは用紙の向きが考慮されて入れ替わります。

一方、PrintableAreaWidthHeightLandscape の値が考慮されませんので、プログラム側で考慮しなければならないようです。ヘルプには

PrintableArea プロパティは、用紙方向が横向きまたは縦向きのどちらであっても、正しい値を返します。

と書かれていますが、ここでの「正しい」は用紙の向きを考慮するという意味ではなくて、用紙の向きを無視して本来の値を返すという意味らしいです。

ちなみに BoundsPrintableArea でいう印刷可能領域とは、文字通りプリンタでの印刷が可能な領域という意味です。Margins で指定した余白の内側という意味ではないので、Bounds の値から Margins の値を引いて印刷内容を計算する必要があります。もちろん余白に印字したい場合は別ですが。

コメントはまだありません »

コメントはまだありません。

コメントをどうぞ

48 queries. HTML convert time: 2.371 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2010 @ futuremix.org | 5jp.net ログイン