実は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に入っていますが、それが左辺に代入して、
印刷実行しても全然反映されません。
(代入後、ちゃんと値が変わっているのを確認した)
どうも印刷実行時は、コントロールパネルからプリンタを開いたとき
のプリンタの設定状況のままで印刷されています。
どなたかご教授ください。
QuickReportは、印刷時にコントロールパネルのプリンタの設定を持ってくるようなので、レポートのBeforePrintイベント内で設定すると動作しませんか。
試していませんが
ご返事ありがとうございます。
BeforePrintイベントでやってみたが、やっぱりだめでした。
よろしくお願いいたします。
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;
こちらで解決させていただきましたので、ご報告
http://mrxray.on.coocan.jp/bbs/DelphiBBS/mrxray_delphifan_coffe.cgi?tree=r4147
ツイート | ![]() |