プリンタ情報取得ツール(その2)
みなさま、こんにちは。しむぅです。
開発者ブログの更新が遅れてしまい申し訳ございません。
今回は、プリンタ情報取得ツールの続きです。
前回も書きましたが、このツールは、WindowsAPI を使用していますので、シーオーリポーツ for .NET や シーオーリポーツ for Java 等では、そのまま利用できない場合もあります。
あくまでも、WindowsAPI を使用して取得した結果として扱っていただきたいと思います。
WindowsAPI では、プリンタの設定をする場合に、DEVMODEというものを使用します。
DEVMODEについては説明はしませんので、検索して調べていただいたほうがよいかと思います。
このDEVMODEを使用する場合に、必要となるものとして用紙サイズがあります。
通常はダイアログを表示して選択すればよいのですが、プログラム中では用紙番号を使用する必要があります。(一応、用紙番号以外に用紙名でも可能です。)
ただ、この用紙番号は簡単にはわかりません。
WindowsAPI を使用して、用紙の一覧を取得して調べる必要があります。
用紙名の一覧と用紙番号の一覧と用紙サイズの一覧を取得して、出力したい用紙サイズが何番かどうかを調べて・・・という事をするのでちょっとだけ面倒です。
このツールでは、用紙名と用紙番号と用紙サイズの3つを1つの表にしています。
もうひとつ必要なものとして、用紙トレイがあります。
用紙トレイも通常は、ダイアログを表示して選択するだければよいのですが、プログラム中ではトレイ番号を使用する必要があります。
DEVMODEを使用する場合は、トレイ名で指定することはできません。必ずトレイ番号が必要になります。
こちらも、トレイ名の一覧とトレイ番号の一覧を取得して、出力したいトレイが何番かどうかを調べて・・・という事をするのでやっぱりちょっとだけ面倒です。
用紙番号も、トレイ番号も、使用するプリンタによって異なります。
また、使用するOSや、プリンタドライバのバージョンによって異なる場合もあります。
同じOS、同じプリンタドライバのバージョンでも異なる場合があります。
常に確認をしていただきたいと思います。