Delphi7のクイックレポートを使用して帳票を出力しているのですが、
帳票毎にプログラムでカラー/モノクロの設定を行うことは可能でしょうか?
環境は
WindowsXP,Delphi7です。
プリンタはCanon LBP5700です。
お教えいただけると助かります。よろしくお願いします。
function IsColorPrint :Boolean;
var
dev, drv, port: array[1..256] of char;
devMode: THandle;
pDevMode: PDeviceMode;
begin
//Printer.PrinterIndex := 0 とか、てきとうなプリンタを選択しておくこと
Result := False;
//プリンタ情報取得
Printer.GetPrinter(@dev, @drv, @port, devMode);
//Lock
pDevMode := GlobalLock(devMode);
if pDevMode <> nil then begin
//カラープリンタであるか
Result := ((pDevMode^.dmFields and DM_COLOR) > 0) and
//カラー印刷するか
(pDevMode^.dmColor = DMCOLOR_COLOR);
{Unlock}
GlobalUnLock(devMode);
end;
end;
まさか、プリンタの状態にかかわらず、モノクロで出したいのか?
そうであれば、全部黒で描画したらいいだけでは?
それとも、状況に応じて色を変えたいということであれば、各QRコントロールの
色を印刷前に切り換えるしかないのでは?
返信ありがとうございます。
サンプルソースもありがとうございます。
参考にさせていただきます。
>まさか、プリンタの状態にかかわらず、モノクロで出したいのか?
>そうであれば、全部黒で描画したらいいだけでは?
>それとも、状況に応じて色を変えたいということであれば、各QRコントロールの
>色を印刷前に切り換えるしかないのでは?
状況に応じてプリンタのカラー/モノクロ設定を切り替えたいです。
具体的には、
QRimageコンポーネントで取り込んだ角印(ビットマップ)を表示する請求書だけはカラー印刷を行い、
他の帳票はモノクロ印刷を行いたいと思っています。
請求書印刷前に手動でプリンタのカラー/モノクロ設定をカラーに設定し、
請求書印刷後にモノクロに戻せば対応可能なのですが、
ここの処理をプログラムで行えればと思っています。
もしこういった処理を行う方法があれば、
教えていただけると助かります。
よろしくお願いします。
クイックレポートのレポートフォーム作成時に、
モノクロで出力したい帳票については印字項目や罫線を黒で作成し、
請求書については必要な項目は何かしらの色で作成し、
角印はカラーのビットマップを取り込めば、
LBP5700はカラープリンタなんだから、
それ相応の色で印刷されると思うのですが、
それではダメですか?
請求書印刷用に設定したプリンタを追加しておいて印刷時に
そのプリンタを選択した状態にしておくのはいかがですか?
かっこいいやり方ではありませんけどね。
usesにPrintersを追加しレポートをCreate後に
QuickReport1.PrinterSettings.PrinterIndex := Printer.Printers.IndexOf('プリンタ名');
とすればいけると思います。
的外れな回答でしたらごめんなさい_(._.)_
皆様、返信ありがとうございました。
請求書印刷用に設定したプリンタを追加し、
印刷時に選択する方法で解決できました。
ありがとうございました。
ツイート | ![]() |