Активные отчеты всегда отправляются на принтер по умолчанию
Я хочу печатать на сетевом принтере из активных отчетов, но он всегда печатает на принтере по умолчанию, не выдавая ошибку. После того, как я пытаюсь печатать с помощью библиотеки.net printdocument, он печатается на указанном принтере
Я не знаю, почему это печать на принтер по умолчанию при использовании активных отчетов.
2 ответа
Установите свойство PrinterName объекта Printer. Что-то вроде следующего:
viewer.Document.Printer.PrinterName = "TheNetworkPrinterName";
viewer.Print();
Значение PrinterName
Свойство должно быть точным именем из окон. Чтобы получить список допустимых имен принтеров в данной системе, вы можете перечислить список принтеров, используя PrinterSettings.InstalledPrinters. Пример перечисления доступных принтеров приведен в документации MSDN здесь.
Если вы попробуете что-то и обнаружите, что это не работает, сообщите нам более подробную информацию, и мы постараемся вам помочь.
Замените принтер в конструкторе конечного пользователя.
Grapecityteam ответ:
Для SectionReport вы можете добавить скрипт для смены принтера по умолчанию при загрузке отчета в событии LayoutChanged в Designer, как показано ниже:
private void OnLayoutChanged(object sender, LayoutChangedArgs e)
{
if (e.Type == LayoutChangeType.ReportLoad || e.Type == LayoutChangeType.ReportClear)
{
reportToolbox.Reorder(reportDesigner);
reportToolbox.EnsureCategories();
reportToolbox.Refresh();
RefreshExportEnabled();
CreateReportExplorer();
splitContainerMiddle.Panel2Collapsed = reportDesigner.ReportType == DesignerReportType.Section;
if (reportDesigner.ReportType == DesignerReportType.Section)
{
string script = string.Empty;
script += "public void ActiveReport_ReportStart()";
script += "{";
script += "rpt.Document.Printer.PrinterSettings.PrinterName = System.Drawing.Printing.PrinterSettings.InstalledPrinters[3];";
script += "}";
(reportDesigner.Report as SectionReport).ScriptLanguage = "C#";
(reportDesigner.Report as SectionReport).Script = script;
}
}
благодаря продажам и поддержке Grapecity