VisualBasic6.0からのプリンタ印刷で質問です。


2つの給紙トレイを持つプリンタで、プログラム上からトレイを任意に指定して(切り替えて)Printerオブジェクトを使用した印刷がしたいのですが、どのようにすれば良いのでしょうか?
サンプルなど、コーディングに必要な情報が網羅されているページがあれば教えてください。
ちなみに、どちらのトレイも紙のサイズは同じです。(紙の色が違う)

#WinAPIを使用した印刷はできれば避けたいですが、VisualBasic6.0からのコーディングに必要な情報が網羅されているページがあればお願いします。

希望する回答であれば1,000ポイント進呈させていただきます。

宜しくお願い致します。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/06/28 12:12:20
  • 終了:2006/07/04 17:25:18

回答(3件)

id:llusall No.1

llusall回答回数505ベストアンサー獲得回数612006/06/28 12:37:45

ポイント250pt

>プログラム上からトレイを任意に切り替えて

というのは、困難と思われますので、次の方法で実現してみてはいかがでしょうか?


1.[コントロールパネル]-[プリンタとFAX]にて、トレイ毎にプリンタを別名で追加する。

  それぞれにトレイを指定しておきます。


2.VBから印刷時に、出力先プリンタを切り替える

  参考 「通常使うプリンタ」の変更(サンプル)

     http://www.mitene.or.jp/~sugisita/vb6_prt.html


以上、いかがでしょうか?

id:yokodai

回答ありがとうございます。

妙案と思い試してみようと思ったのですが、プリンタ設定をトレイ毎に別名で追加する方法がわかりません。

教えていただけないでしょうか?

試してみましたが、作成できませんでした。

ちなみに対象のプリンタはローカル接続です。

2006/06/28 15:35:52
id:taknt No.2

きゃづみぃ回答回数13539ベストアンサー獲得回数11982006/06/28 13:41:05

ポイント500pt

http://bicniws.okwave.jp/kotaeru.php3?q=1421817

http://www.boreas.dti.ne.jp/~tosin/errvb/setprinter.htm

Printer.PaperBin を使ってできなかったら WinAPIですね。

id:yokodai

回答ありがとうございます。

PaperBinは残念ながら実行時エラーになりました。プリンタに依存するようで、今回使用するプリンタでは不可でした。

2006/06/28 15:37:50
id:llusall No.3

llusall回答回数505ベストアンサー獲得回数612006/06/28 14:22:02

ポイント250pt

再回答すみません。


APIを使用する場合、ResetDCを使用するようです。

以下が参考になりますでしょうか?


VBからResetDCを使用する参考ソース

http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B180645

' Constants for printer bin.

Private Const DMBIN_UPPER = 1

Private Const DMBIN_LOWER = 2

Ret = ResetPrinterDC(Printer.DeviceName, hPrintDc, DMBIN_UPPER, DMORIENT_PORTRAIT)


ResetDC

http://www.microsoft.com/JAPAN/developer/library/jpgdipf/_win32_...


※なお、前回回答時の、プリンタの指定は、DeviceName を指定しても可能のようです。

http://www.bcap.co.jp/hanafusa/VBHLP/print03.htm

id:yokodai

ありがとうございます。

試してみましたが、今回使用するプリンタではうまくいきませんでした。

(他のプリンタで実行したところうまくいきました)

2006/07/04 17:24:17
  • id:llusall
    なかなかスッキリとした形で終えることができなかったにもかかわらず、沢のポイントをいただきましてすみませんでした。

    回答数制限により、追加回答できませんでしたので、以下にコメントさせていただきます。

    「トレイ毎にプリンタを別名で追加」ですが、
    [コントロールパネル]-[プリンタとFAX]から、プリンタを追加する際、
    ウィザードで進んでいくと、プリンタの名称が設定できます。
    この時、プリンタの名称をトレイ毎に変えてみたらいかがかと思いました。

  • id:yokodai
    コメントありがとうございます。
    「トレイ毎にプリンタを別名で追加」ですが、実際に以下の2パターンで試みましたが、追加できませんでした。
    ・プリンタポート接続
    ・LAN接続

    今回のケースはプリンタポートに直付だったのですが、
    この場合、プリンタ定義はポート毎に作成されるため、
    同じ機体に複数の定義を作成することはできない気がします。
    (間違っていたらすみません)

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません