Q:
I can get the printer(s) List by using Delphi 6 Pro as the following code.
uses
printers
ComboBox1.Items.Assign(Printer.Printers);
But, I don't know how to change the properity of a frReport for the user selection!
The default printer selection dialog cannot be made a filter for our need ( e.g. print to a Fax printer, PDF printer, PostScript enabled printer or Dot-Martix printer ).
Would you give me some advice ?
A:
Use the TFRReport.ChangePrinter(OldIndex,NewInde:Integer):Boolean
function to change the output printer without using any customizable
printer setting dialogs. The parameters are the same as the reference
indexes in the Printer.Printers array. My preferred way to implement
this on the GUI: populate a combobox with the Printer.Printers list and
then let the user choose one from the list.
So:
Uses System,....,...,Printers;
YourForm.OnCreate(Sender:TObject);
Begin
PrinterCombo.Items.Assign(Printer.Printers);
End;
TYourForm.PrintButtonClick(Sender:TObject);
Begin
Report.LoadFromFile(...);
Report.ChangePrinter(-1, PrinterCombo.ItemIndex);
Report.Prepare;
...etc.
End;
-1 for the OldIndex parameter cause the report to use the original
index, so You don't need to know the previous index.