Crystal report для отправки отчета напрямую на принтер по умолчанию - PullRequest
0 голосов
/ 01 декабря 2010

Я пытаюсь отправить отчет напрямую на принтер по умолчанию, и он уже работает нормально с этим кодом:

doc.Load(Server.MapPath("~\\reports\\CrystalReport\\DocumentCRV.rpt"));
doc.SetDataSource(dsReport);
doc.PrintToPrinter(1, true, 0, 0);

Проблема в том, что он работает только тогда, когда я запускаю веб-приложениемой компьютер разработчика (поэтому я предполагаю, что он получает принтер по умолчанию для сервера, а не принтер пользователя)

Ответы [ 3 ]

0 голосов
/ 01 декабря 2010

Невозможно напрямую печатать на принтере пользователя с веб-сервера, если только вы не находитесь в той же внутренней сети / каталоге.Это был бы кошмар управления.

Лучше всего открыть окно просмотра, а затем открыть диалоговое окно печати.

Я использовал активный элемент управления x, который может перечислять принтеры конечных пользователей, а затем автоматически распечатывать их.Тем не менее, это был только IE и в плохом состоянии.

0 голосов
/ 01 декабря 2010

Управление пользовательскими принтерами - это не то, что можно сделать из серверного кода, поскольку это может создать потенциальные дыры в безопасности.Браузер можно принудительно печатать на JavaScript.Возможно, вы могли бы загрузить отчет для пользователя?Тогда они могут распечатать из PDF-просмотра или что-то?

0 голосов
/ 01 декабря 2010

У пользователя установлен принтер по умолчанию? Также эта статья может помочь:

Выбор принтера при печати из Crystal Reports в C #

...