Глядя на исходный код FastReport для функции TfrxPreviewPages.Print
, становится ясно, что обработчик события OnPrintReport
вызывается после выбора принтера, но до выполнения задания на печать.
Я поместил следующий код в мой обработчик OnPrintReport
:
PrinterName := frxPrinters.Printers[frxPrinters.PrinterIndex];
и PrinterName
дали тот принтер, который я выбрал в списке принтеров FastReport.
Получив его, вы можете выбрать его позже, выполнив следующее:
frxReport.PrepareReport(True);
frxReport.PrintOptions.Printer := PrinterName;
frxReport.PrintOptions.ShowDialog := True;
frxReport.Print;
Я убедился, что все это работает.