VB.NETで帳票を印刷する場合、PaperSizeクラスを使って用紙サイズを設定することになる。
PaperSizeクラスのコンストラクタは、
  PaperSize(PaperName, Width, Height)

となっているため、A4等のように既定のサイズを持つ用紙であっても、用紙名と用紙サイズ(縦横の長さ)を指定しなければならないという不便さがある。
そこで、PaperSizeクラスを拡張し、PaperKind列挙型に登録されているサイズを自動取得できるクラスを作成してみた。

PaperSizeの拡張コントロール:PaperSizeEx.zip

【拡張内容】
・PaperSizeEx.DLLは、PaperSizeクラスを継承して作成しています。
・コンストラクタの引数をPaperKind列挙子にした。
 →PaperKind列挙子を指定すると、既定のサイズを取得します。
・用紙の向きを表すLandscapeプロパティを追加した。
 →指定したPaperKind列挙子に合わせた用紙の向きを取得します。

【補足事項】
・上記ファイルには、以下のファイルが含まれています。
  PaperSizeEx.DLL(拡張コントロールファイル)
   →SamplePaperSizeEx\DLLに保存されています。
  ReadMe.txt(マニュアル、免責事項等)
  サンプルプログラム
・現バージョンでは、以下の用紙には、対応していません。
 日本用封筒
  →PaperKind列挙子のJapaneseEnvelopeKakuNumber3等
   (JapaneseEnvelopeXXXXNumberXの形式には対応していません)
 ユーザ定義用紙
  →PaperKind列挙子のCustom
・プログラムでPaperSizeExを利用するには、参照設定が必要です。
 →PaperSizeEx.DLLを参照に追加する必要があります。

※印刷用紙の設定方法は、サンプルプログラムに記載してありますので、そちらをご確認下さい。

利用した感想などがありましたら、コメントをお寄せ下さい。