VB6で印刷機能を持つプログラムを作成しておりますが、
印刷する際に、プリンターに排紙先が指定できる場合、
その排紙先を指定したいのですが、どのようにしたらよいやら悩んでおります。解決方法をご存知の方がいらっしゃいましたら、
ぜひご指導ください。
お願いします。
とりあえず、標準の印刷ダイアログをAPI関数かコントロールなどで表示し、
そのhDCもしくはDEVMODEを用いることができれば指定できたことになるでしょう。
で、ダイアログを表示せずにコードで、というのならば、そのプリンタドライバが
用いるDEVMODEの構造の自力で調べるかもしくは資料を求めるかする必要があるか、
とは思われます。
私の場合は、プリンタ設定を
http://rd.vector.co.jp/soft/winnt/hardware/se417221.html
で必要分コピーして、それぞれ排紙先を指定し、
プログラムからは”プリンタ名”でコントロールするようにしています。
例:
--------------------------------
プリンタ名 排紙先 用紙サイズ
--------------------------------
printer1 用紙カセット1 A4
printer2 用紙カセット2 A4
printer3 用紙トレイ A4
printer4 用紙トレイ B4
--------------------------------
上記のように、同じプリンタで印刷指定の異なるものを
用意すればとりあえず出来ました。
プリンタが対応していれば、排紙先や用紙サイズ以外に
拡大&縮小(A4→B4等)も可能です。
当初は私も排紙先の値を一生懸命調べてトライしましたが、
何分未熟なため結局断念しました。
ツイート | ![]() |