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.
本文介绍如何使用Delphi实现从应用程序中打印各种类型的文档到指定打印机的方法。通过在表单上放置一个下拉列表框来选择打印机,并利用ShellExecute函数进行打印操作。
1334

被折叠的 条评论
为什么被折叠?



