报表打印(100)

  • 主题发起人 主题发起人 geean
  • 开始时间 开始时间
G

geean

Unregistered / Unconfirmed
GUEST, unregistred user!
在程序怎样把报表发送到指定的打印机进行打印(即有多台打印机时可选择不同打印机进行打印,不用打印对话框而用下拉列表框Combobox进行选择打印机打印)
 
用Printers单元的Printer.Printers,可以获得打印机列表。另外,不知道你的报表用什么做的,控件上一般都有设置打印机的函数或者属性。
 
用的是FastReport报表
 
建议你不要用这个Fastreport,许多打印机的驱动都不支持,呵呵,还是学学如何生成EXCEL打印。。。
 
抢分的 znxia正解.
 
use printers,WinSpool枚举打印机var Buffer,PrinterInfo:pchar;
Flags, Count, NumInfo: DWORD;
Level: Byte;
i:integer;
begin
Flags := PRINTER_ENUM_CONNECTIONS or PRINTER_ENUM_LOCAL;
Level := 2;
Count := 0;
EnumPrinters(Flags, nil, Level, nil, 0, Count, NumInfo);
if Count = 0 then
Exit;
GetMem(Buffer, Count);
try if not EnumPrinters(Flags, nil, Level, PByte(Buffer), Count, Count, NumInfo) then
//枚举打印机 Exit;
PrinterInfo := Buffer;
for I := 0 to NumInfo - 1do
begin
with PPrinterInfo2(PrinterInfo)^do
begin
ComboBox1.Items.Add(pPrinterName);
Inc(PrinterInfo, sizeof(TPrinterInfo2));
end;
end;
finally FreeMem(Buffer, Count);
end;
end;
按打印机名指定打印机printer.printerindex:=printer.printers.indexof(ComboBox1.Text)直接打印printer.begin
doc;printer.canvas.textout(0,0,'abc');//打印文字printer.canvas.draw(0,0,image1.picture.graphic);//打印图片printer.enddoc;
 
多人接受答案了。
 

Similar threads

回复
0
查看
848
不得闲
D
回复
0
查看
825
DelphiTeacher的专栏
D
D
回复
0
查看
831
DelphiTeacher的专栏
D
D
回复
0
查看
664
DelphiTeacher的专栏
D
后退
顶部