- PR -

【VB6】1台のカラープリンタでモノクロ印刷・カラー印刷を行いたい

1
投稿者投稿内容
ヤクルト400
会議室デビュー日: 2004/02/16
投稿数: 18
投稿日時: 2004-06-09 19:43
1台のカラープリンタに対し、プログラムからモノクロ印刷やカラー印刷を指示して行いたいのですが、
やりかたがわかりません。(全部カラーで印刷されてしまいます)
作成したい仕様としては、VB画面にカラー印刷ボタン・モノクロ印刷ボタンを作成し、それを
押下したときに、プリンタダイアログなどを出さずにスプーラに出力して印刷するというものです。

プリンタの共通情報としてDEVMODE構造体というのがあり、そのメンバ変数dmColorの値を
変えてみたのですが、だめでした。
聞くところでは、さらに拡張した構造体があり、その中の値を変えれば色分け印刷が
可能かもしれないということなのですが、
その構造体の名前も、それを操作するAPIの名前もわかりません。

どなたかご存知でしたら、教えていただけないでしょうか。
もちろん他の方法があれば、それでも構わないのでよろしくお願いします。

ちなみに以下のことが前提条件になっています。
・直接印刷は画面制御不可の時間が長すぎるので、スプーラを経由させる
・カラー用、モノクロ用にスプーラを分けずに1つのスプーラで行う
・使用するプリンタには独自のAPIがないので標準(?)で行うこと

よろしくお願いします。
hoobastank
会議室デビュー日: 2004/06/10
投稿数: 1
投稿日時: 2004-06-10 01:23
dmFieldsにDM_COLORビットフラグを立てていますか?
ヤクルト400
会議室デビュー日: 2004/02/16
投稿数: 18
投稿日時: 2004-06-10 10:37
ご回答ありがとうございます。

すみませんが「dmFields」に設定する値がよくわからないので教えていただけないでしょうか。
私が見た本では、dmFieldsについて
「DEVMODE構造体の有効なエントリを指定する。
API32.txtファイル中の'DM_'で始まるフラグ定数で指定される。」
とあったのですが、API32.txtファイルを検索しても、MAPI32.txtというファイルしか発見できず、
その中には'DM_'で始まる項目もそれらしいものもありませんでした。

よろしくお願いします。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-06-10 12:50
ヤクルト400さん、こんにちは。

↓これですか?
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/prntspol_8nle.asp
ヤクルト400
会議室デビュー日: 2004/02/16
投稿数: 18
投稿日時: 2004-06-10 14:17
きくちゃんさん、ありがとうございます。

DevMode.dmColor = DMCOLOR_COLOR
DevMode.dmFields = DevMode.dmFields + DM_COLOR
(DevMode.dmFields = DM_COLORも試してみました)

とやってみたのですが、やっぱりダメでした。
白黒のスプーラを使えば全て白黒、カラースプーラでやってみれば全てカラーで印刷されます。

あと、DocumentPropertiesでDevMode情報を反映させた後、ResetDCを呼ぶとエラーで返ってきています。
ただGetLastErrorをしてもエラーコードが取れないので、何が原因なのかがわからない状態です。

どなたか心当たりがあれば、よろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)