Печать на клиентском принтере с использованием ActiveReport

Сейчас я работаю с asp.net и C#.
Я использую ActiveReports для отчетов в моей системе.
Я попытался напечатать свой отчет с предварительным просмотром (я имею в виду, что я не использую WebViewer для предварительного просмотра отчета и распечатываю отчет напрямую).

MyAR1    rptMyreport = new MyAR1();    
DataTable dtMydata = new DataTable();    
//add some data in dtMydata    
rptMyreport .DataSource = dtMydata;
if (rptMyreport .Document.Printer.PrinterSettings.IsValid)
{
   try
   {
      rptMyreport .Run();
      rptMyreport .Document.Print(false, false, false);
   }
   catch (Exception)
   {
   // do something
   }    
}      
else  
{  
    //show Error Message  
}  

Моя проблема...
Когда я печатаю этот отчет, он работает на принтере сайта сервера и не работает на принтере сайта клиента. т.е. (я работаю на 4-м этаже, а сервер - на 10-м этаже. Когда я печатаю отчет. Он распечатывается принтером сайта сервера на 10-м этаже.) Что можно сделать, чтобы распечатать отчет на принтере, который был клиентским ПК связано.

С уважением,

1 ответ

Решение

Код C#, который вы запускаете выше, на самом деле выполняется на сервере, поэтому принтер сервера получает задание на печать. Однако вы хотите, чтобы клиентский компьютер - тот, на котором установлен веб-браузер, - получил задание на печать. Для этого мы предлагаем несколько вариантов, но лучший из них описан пошагово в документации в разделе справки " Обеспечение печати одним касанием в WebViewer (Pro Edition)". Это приведет к тому, что печать будет происходить с компьютера, который использует веб-браузер, а не с сервера.

Вы можете использовать другие типы просмотра, кроме Flash, но браузер налагает ограничения на принудительное отображение диалоговых окон печати (чтобы предотвратить случайную печать веб-страниц без согласия). Дополнительная информация о доступных параметрах и ограничениях описана в разделе справки " Параметры печати Web Viewer".

Другие вопросы по тегам