Страница 1 из 1

Печать на разные принтеры из приложения

Добавлено: 26 янв 2019, 17:04
hcipap
Добрый день!

Подскажите пожалуйста, можно ли в коде задать печать разных отчётов на разные принтеры?

Например: из одного приложения печатаются два отчёта. Один для печати на чековом принтере, другой на обычном А4.

В мануале ничего на эту тему не нашел :(

Спасибо!

Re: Печать на разные принтеры из приложения

Добавлено: 29 янв 2019, 11:14
Aleksey
Здравствуйте,

Вы можете использовать PrinterSettings:

Код: Выделить всё

var printSetting = new PrinterSettings();
printSetting.PrinterName = "";
// ...
report.Print(printSetting);
Спасибо.

Re: Печать на разные принтеры из приложения

Добавлено: 30 янв 2019, 09:36
hcipap
Спасибо за помощь!

Re: Печать на разные принтеры из приложения

Добавлено: 30 янв 2019, 11:19
Aleksey
Здравствуйте

Всегда рады помочь!

Re: Печать на разные принтеры из приложения

Добавлено: 06 фев 2019, 15:06
hcipap
Добрый день! В продолжении темы, подскажите пожалуйста, пытаюсь отключить диалоговое окно параметров печати и получаю ошибку:

Named argument specifications must appear after all fixed arguments have been specified. Please use language version 7.2 or greater to allow non-trailing named arguments.
Ошибка во втором параметре. (printSetting)
rep.Print(showPrintDialog: false, printSetting);

Вот код.

Код: Выделить всё

var rep = new StiReport();
var printSetting = new System.Drawing.Printing.PrinterSettings();
rep.Load("Propusk.mrt");
ds.ReadXmlSchema("DataSetPropusk.xsd");
rep.Dictionary.ImportXMLSchema(ds);
rep.RegData(ds);
printSetting.PrinterName = Settings.PropPrintName;
rep.Print(showPrintDialog: false, printSetting);
Для совместимости с windows xp, вынужден использовать framework 4.0

Если использовать принтер по умолчанию, то диалог отключается и никаких ошибок нет.

Можно ли как-то использовать вместе два параметра?

Re: Печать на разные принтеры из приложения

Добавлено: 07 фев 2019, 13:51
Aleksey
Здравствуйте,

Вам необходимо, вместо
rep.Print(showPrintDialog: false, printSetting);
использовать
rep.Print(false, printSetting);

Спасибо.