[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 の値を引いて印刷内容を計算する必要があります。もちろん余白に印字したい場合は別ですが。

  • ブックマーク : アクセス: 10,187回
  • カテゴリー : C#
  • キーワード : ,

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

No comments yet.

Sorry, the comment form is closed at this time.

68 queries. HTML convert time: 1.193 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン