您的位置:首页 > 编程语言 > Delphi

Print any type of document using Delphi

2009-11-17 12:55 225 查看
Print any type of document using Delphi



1.Drop a TComboBox on a form. Name it "cboPrinter". Set Style to csDropDownList.
2.Put the next two lines in the form's OnCreate event 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 method you can use to print any document type to a specified printer:





uses ShellAPI, Printers;

...

procedure TForm1.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;



Note
To use this code you'll need an application registered for each file type you want to print.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐