帳票毎にカラー/モノクロの設定を行いたい。

解決


めいちょ  2007-10-24 06:21:40  No: 28097

Delphi7のクイックレポートを使用して帳票を出力しているのですが、
帳票毎にプログラムでカラー/モノクロの設定を行うことは可能でしょうか?

環境は
WindowsXP,Delphi7です。
プリンタはCanon LBP5700です。

お教えいただけると助かります。よろしくお願いします。


  2007-10-24 18:38:48  No: 28098

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コントロールの
色を印刷前に切り換えるしかないのでは?


めいちょ  2007-10-24 21:37:03  No: 28099

返信ありがとうございます。
サンプルソースもありがとうございます。
参考にさせていただきます。

>まさか、プリンタの状態にかかわらず、モノクロで出したいのか?
>そうであれば、全部黒で描画したらいいだけでは?
>それとも、状況に応じて色を変えたいということであれば、各QRコントロールの
>色を印刷前に切り換えるしかないのでは?
状況に応じてプリンタのカラー/モノクロ設定を切り替えたいです。

具体的には、
QRimageコンポーネントで取り込んだ角印(ビットマップ)を表示する請求書だけはカラー印刷を行い、
他の帳票はモノクロ印刷を行いたいと思っています。

請求書印刷前に手動でプリンタのカラー/モノクロ設定をカラーに設定し、
請求書印刷後にモノクロに戻せば対応可能なのですが、
ここの処理をプログラムで行えればと思っています。

もしこういった処理を行う方法があれば、
教えていただけると助かります。
よろしくお願いします。


(。´・ω・)ん?  2007-10-25 00:35:23  No: 28100

クイックレポートのレポートフォーム作成時に、
モノクロで出力したい帳票については印字項目や罫線を黒で作成し、
請求書については必要な項目は何かしらの色で作成し、
角印はカラーのビットマップを取り込めば、
LBP5700はカラープリンタなんだから、
それ相応の色で印刷されると思うのですが、
それではダメですか?


通りすがお  2007-10-25 00:56:36  No: 28101

請求書印刷用に設定したプリンタを追加しておいて印刷時に
そのプリンタを選択した状態にしておくのはいかがですか?
かっこいいやり方ではありませんけどね。

usesにPrintersを追加しレポートをCreate後に

QuickReport1.PrinterSettings.PrinterIndex := Printer.Printers.IndexOf('プリンタ名');

とすればいけると思います。
的外れな回答でしたらごめんなさい_(._.)_


めいちょ  2007-10-25 04:22:04  No: 28102

皆様、返信ありがとうございました。
請求書印刷用に設定したプリンタを追加し、
印刷時に選択する方法で解決できました。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加