[转]用Delphi打印各类文档

  • 主题发起人 主题发起人 SUNSTONE的Delphi笔记
  • 开始时间 开始时间
S

SUNSTONE的Delphi笔记

Unregistered / Unconfirmed
GUEST, unregistred user!
ShellExecute(Handle, 'print', PChar('c:/document.doc'), nil, nil, SW_HIDE) ;



  1. Drop a TComboBox on a form. Name it "cboPrinter". Set Style to csDropDownLidt
  2. Put 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/6/10 20:57:00 原文链接
阅读:856 评论:0 查看评论

查看更多...
 
后退
顶部