/****设置打印机*** procedure gProSetPrnIndex(pName:string); begin if printer.Printers.IndexOfName(pName) >=0 then printer.PrinterIndex:= printer.Printers.IndexOfName(pName); end;precedure proPrintTwoPageTest; begin gProSetPrnIndex('第一台打印机'); printer.begindoc; printer.Canvas.TextOut(20,60,'编号:') ; printer.endDoc;
printers获取所有的打印机名称到ComboBox2中ComboBox2.Style := csDropDownList;
ComboBox2.Items := Printer.Printers;发送打印信息到ComboBox2中的打印机
for i:=0 to combobox2.Items.Count-1 do
begin
combobox2.ItemIndex := i;
frxReport1.PrepareReport;
frxReport1.PrintOptions.Printer := trim(ComboBox2.Text);
frxReport1.PrintOptions.PrintPages := ppall;
frxReport1.PrintOptions.ShowDialog := false;
frxreport1.Print;
end;
SetPrinter(ADevice, ADriver, APort: PChar; ADeviceMode: THandle);
但是那些参数怎么用啊,难道用
GetPrinter (ADevice, ADriver, APort: PChar; var ADeviceMode: THandle);
先获得所有打印机的信息,然后遍历找出指定打印机的信息再使用
SetPrinter(ADevice, ADriver, APort: PChar; ADeviceMode: THandle);
设置默认打印机?
别的参数都明白就这个ADeviceMode不明白,他的值是什么型的啊,什么意义?提示楼主,应该可以通过设置默认打印机先打一份再设另一为默认打印机再打一份,我在VB里是这么用的.
这方面的东西找了好几天了,还没找全湖,因为第一次用delphi 的 printer打印东西,比较迷糊啊,请高人指点迷津.
procedure gProSetPrnIndex(pName:string);
begin
if printer.Printers.IndexOfName(pName) >=0 then
printer.PrinterIndex:= printer.Printers.IndexOfName(pName);
end;precedure proPrintTwoPageTest;
begin
gProSetPrnIndex('第一台打印机');
printer.begindoc;
printer.Canvas.TextOut(20,60,'编号:') ;
printer.endDoc;
gProSetPrnIndex('第二台打印机');
printer.begindoc;
printer.Canvas.TextOut(20,60,'33333333test:') ;
printer.endDoc;
end;