S
SUNSTONE的Delphi笔记
Unregistered / Unconfirmed
GUEST, unregistred user!
ShellExecute(Handle, 'print', PChar('c:/document.doc'), nil, nil, SW_HIDE) ;
Drop a TComboBox on a form. Name it "cboPrinter". Set Style to csDropDownLidtPut the next two lines in the form's OnCreate even handler:
//have available printers in the combo box
cboPrinter.Items.Assign(printer.Printers);
//pre-select the default / active printer
cboPrinter.ItemIndex := printer.PrinterIndex;
Now, here's the function you can use to print any document type to a specified printer:
uses shellapi, printers;
procedure PrintDocument(const documentToPrint : string) ;
var
printCommand : string;
printerInfo : string;
Device, Driver, Port: array[0..255] of Char;
hDeviceMode: THandle;
begin
if Printer.PrinterIndex = cboPrinter.ItemIndex then
begin
printCommand := 'print';
printerInfo := '';
end
else
begin
printCommand := 'printto';
Printer.PrinterIndex := cboPrinter.ItemIndex;
Printer.GetPrinter(Device, Driver, Port, hDeviceMode) ;
printerInfo := Format('"%s" "%s" "%s"', [Device, Driver, Port]) ;
end;
ShellExecute(Application.Handle, PChar(printCommand), PChar(documentToPrint), PChar(printerInfo), nil, SW_HIDE) ;
end;
作者:sunstone 发表于 2011/06/10 20:57:00 原文链接 //blog.csdn.net/sunstone/article/details/6537249
阅读:1586
查看更多...
Drop a TComboBox on a form. Name it "cboPrinter". Set Style to csDropDownLidtPut the next two lines in the form's OnCreate even handler:
//have available printers in the combo box
cboPrinter.Items.Assign(printer.Printers);
//pre-select the default / active printer
cboPrinter.ItemIndex := printer.PrinterIndex;
Now, here's the function you can use to print any document type to a specified printer:
uses shellapi, printers;
procedure PrintDocument(const documentToPrint : string) ;
var
printCommand : string;
printerInfo : string;
Device, Driver, Port: array[0..255] of Char;
hDeviceMode: THandle;
begin
if Printer.PrinterIndex = cboPrinter.ItemIndex then
begin
printCommand := 'print';
printerInfo := '';
end
else
begin
printCommand := 'printto';
Printer.PrinterIndex := cboPrinter.ItemIndex;
Printer.GetPrinter(Device, Driver, Port, hDeviceMode) ;
printerInfo := Format('"%s" "%s" "%s"', [Device, Driver, Port]) ;
end;
ShellExecute(Application.Handle, PChar(printCommand), PChar(documentToPrint), PChar(printerInfo), nil, SW_HIDE) ;
end;
作者:sunstone 发表于 2011/06/10 20:57:00 原文链接 //blog.csdn.net/sunstone/article/details/6537249
阅读:1586
查看更多...