▼ 小豚丸さん ▼ Mr.XRAYさん こんにちは
012_PrintResolutionにある
// コンボボックスで選択したプリンタで使用可能なビン装置のリストを作成
を利用してBinの番号を調べる
その後、
QuickRep1.PrinterSettings.CustomBinCode := 259;//上記で調べた番号
QuickRep1.PrinterSettings.UseCustomBinCode := True;
QuickRep1.Prepare;
QuickRep1.Preview;
とすると、希望したトレイから印刷されました。
でも、
QuickRep1.PrinterSettings.ColorOption := 1;
を間に挟んでも、色は変わりませんでした・・・(^^;
なので、
procedure TForm1.SetDefaultPrinter(Color : Integer);
var
Device, Driver, Port: array[0..79] of char;
DeviceMode: THandle;
DevMode: PDeviceMode;
begin
//プリンタ名、DEVMODE構造体を取得
Printer.PrinterIndex := ComboBox1.ItemIndex;
Printer.GetPrinter(Device, Driver, Port, DeviceMode);
Printer.SetPrinter(Device, Driver, Port, 0);
Printer.GetPrinter(Device, Driver, Port, DeviceMode);
if DeviceMode = 0 then begin
ShowMessage('Printer.GetPrinter エラー');
Exit;
end;
DevMode := GlobalLock(DeviceMode);
try
//必要なら、ここで DevModeを修正する
//↓ B5横 に設定する例
with DevMode^ do begin
dmColor := Color;//色指定
end;
SetDefaultUsePrinter(Device {←これが「プリンタ名」です}
,True {「通常使うプリンタ」に設定する}
,DevMode {DEVMODE構造体を設定する}
);
finally
GlobalUnlock(DeviceMode);
end;
end;
を定義して、
その後、
QuickRep1.PrinterSettings.CustomBinCode := 259;//上記で調べた番号
QuickRep1.PrinterSettings.UseCustomBinCode := True;
SetDefaultPrinter(1);
QuickRep1.Prepare;
QuickRep1.Preview;
SetDefaultPrinter(2);
で色と、ビンの変更がうまくいくようです。
|