[转]用Delphi打印各类文档

  • 主题发起人 主题发起人 SUNSTONE的Delphi笔记
  • 开始时间 开始时间
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

查看更多...
 

Similar threads

S
回复
0
查看
678
SUNSTONE的Delphi笔记
S
S
回复
0
查看
724
SUNSTONE的Delphi笔记
S
I
回复
0
查看
625
import
I
I
回复
0
查看
3K
import
I
后退
顶部