Fastreport 4.x и Fastreport 2.x не отправляют задания на принтер в среде Linux+wine

отредактировано 01:18 Раздел: FastReport 4.0
FastReport 2.X и FastReport 4.X не отправляют задания на принтер (CUPS) в среде Linux+Wine.
Сам Delphi7 IDE, запущенный в той же среде, печатает нормально (вот как пришлось изгаляться что бы протестировать :) .

Но если в метод onbtnClick кнопки "Печать"
формы fr_View.pas добавить вызов метода "Execute" стандартного (для Delphi7) компонента TPrintDialog
(Printdialog1.Execute), то FastReport начинает работать нормально.
Думаю что он будет работать если вызвать этот метод откуда угодно, не обязательно из этой формы

Заставить печатать FastReport можно еще и вызывая метод TPrinterSetupDialog.Execute

Если нажимаешь в этом диалоге OK FastReport печатает нормально.
Я протрасировал и пересмотрел все связанные с этим переменные и данные, пришел к выводу что все дело в
в функции TDialogFunc = function(var DialogData): Bool stdcall;
Что то в ней присходит после нажатия на кнопку OK

Проблема кроется где то в классе TPrinter.

Пример кода, который не работает:

Printer.Index := 0;
Printer.Title := 'Test';
Printer.BeginDoc;
Printer.NewPage;
Printer.Canvas.TexOut(200,200,'Бла-Бла-Бла');
Printer.EndDoc;

Если в него добавить вызов диалога будет работать.

PrinterSetupDialog := TPrinterSetupDialog.Create(nil);
if PrinterSetupDialog.Execute then
begin
Printer.Index := 0;
Printer.Title := 'Test';
Printer.BeginDoc;
Printer.NewPage;
Printer.Canvas.TexOut(200,200,'Бла-Бла-Бла');
Printer.EndDoc;
end
else
begin
ShowMessage('Если нажали "Отмена" не печатает')
end;


Что и где исправить что бы FastReport печатал?
Простая замена диалога печати на TPrintDialog не поможет, так как часто используется функция PrintPreparedReport, без участия пользователя

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.