プリンタ情報取得ツール(その2)

みなさま、こんにちは。しむぅです。

開発者ブログの更新が遅れてしまい申し訳ございません。
今回は、プリンタ情報取得ツールの続きです。

前回も書きましたが、このツールは、WindowsAPI を使用していますので、シーオーリポーツ for .NET や シーオーリポーツ for Java 等では、そのまま利用できない場合もあります。
あくまでも、WindowsAPI を使用して取得した結果として扱っていただきたいと思います。

WindowsAPI では、プリンタの設定をする場合に、DEVMODEというものを使用します。
DEVMODEについては説明はしませんので、検索して調べていただいたほうがよいかと思います。

このDEVMODEを使用する場合に、必要となるものとして用紙サイズがあります。

通常はダイアログを表示して選択すればよいのですが、プログラム中では用紙番号を使用する必要があります。(一応、用紙番号以外に用紙名でも可能です。)

ただ、この用紙番号は簡単にはわかりません。
WindowsAPI を使用して、用紙の一覧を取得して調べる必要があります。

用紙名の一覧と用紙番号の一覧と用紙サイズの一覧を取得して、出力したい用紙サイズが何番かどうかを調べて・・・という事をするのでちょっとだけ面倒です。

このツールでは、用紙名と用紙番号と用紙サイズの3つを1つの表にしています。

もうひとつ必要なものとして、用紙トレイがあります。

用紙トレイも通常は、ダイアログを表示して選択するだければよいのですが、プログラム中ではトレイ番号を使用する必要があります。
DEVMODEを使用する場合は、トレイ名で指定することはできません。必ずトレイ番号が必要になります。
こちらも、トレイ名の一覧とトレイ番号の一覧を取得して、出力したいトレイが何番かどうかを調べて・・・という事をするのでやっぱりちょっとだけ面倒です。

用紙番号も、トレイ番号も、使用するプリンタによって異なります。
また、使用するOSや、プリンタドライバのバージョンによって異なる場合もあります。
同じOS、同じプリンタドライバのバージョンでも異なる場合があります。

常に確認をしていただきたいと思います。