QuickReportでのプリンタ設定


  2010-10-20 17:02:34  No: 39394

実はQuickReportでの印刷に、白黒とカラー、
トレイの切り替えができなくて苦戦しています。

メーカーさんのHPを調べたら、

with Form1.QuickRep1 do begin
    PrinterSetup; //ここQuickRep1のプリンタ設定ダイアログが開かれます

    //ユーザーが設定した情報は QuickRep1.UserPrinterSettings に入っているそうです。
    PrinterSettings.ColorOption :=UserPrinterSettings.ColorOption;  //白黒は1  カラーは2                                                                   
    PrinterSettings.OutputBin :=UserPrinterSettings.OutputBin; //下トレイ1はFirst=Upper    手差しはManual   自動の場合はAuto

    print;
  end;

トレース実行したら、ちゃんと選択したトレイとカラー情報が
  UserPrinterSettingsに入っていますが、それが左辺に代入して、
印刷実行しても全然反映されません。
(代入後、ちゃんと値が変わっているのを確認した)

どうも印刷実行時は、コントロールパネルからプリンタを開いたとき
のプリンタの設定状況のままで印刷されています。

どなたかご教授ください。


かず  2010-10-20 20:25:20  No: 39395

QuickReportは、印刷時にコントロールパネルのプリンタの設定を持ってくるようなので、レポートのBeforePrintイベント内で設定すると動作しませんか。
試していませんが


  2010-10-20 22:03:05  No: 39396

ご返事ありがとうございます。

BeforePrintイベントでやってみたが、やっぱりだめでした。

よろしくお願いいたします。


ぽむぽむ  2010-10-21 04:11:46  No: 39397

UserPrinterSettingsを使っているところをみると、QR4かな?

トレイはともかく白黒orカラーは設定されていないかもしれない。
ページ設定や、部数が正しく動作しているなら、下記で動くような
気がしますが、自信なし。

  QuickRep1.OnApplyPrinterSettings := QRPrinterSettingsEvent;
  Print;
end;

procedure TForm1.QRPrinterSettingsEvent(Sender : TObject; var Cancel : Boolean; DevMode : pointer);
var
  outputBin :Integer;
begin
  //トレイの確認用
  // outputBin が以下の値になっているか
  //First = 1
  //Upper = 1
  //Lower = 2
  //Middle = 3
  //Manual = 4
  outputBin := PDeviceMode(DevMode)^.dmDefaultSource AND $FF;
  //おかしいなら設定しなおすしかないのかな?
  //バグ?

  //白黒 or カラーがこれが動くかどうかわからない
  if PDeviceMode(DevMode)^.dmFields AND DM_COLOR > 0 then begin
    DeviceMode(DevMode)^.dmColor :=
      QuickRep1.UserPrinterSettings.ColorOption;
  end;
end;


  2011-01-14 08:23:31  No: 39398

こちらで解決させていただきましたので、ご報告
http://mrxray.on.coocan.jp/bbs/DelphiBBS/mrxray_delphifan_coffe.cgi?tree=r4147


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

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






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