Как я могу печатать непосредственно на принтере с помощью служб windows, C#
Все идет хорошо, но принтер никогда не печатает отчет.
Reportes rep = new Reportes(); DataTable dt = new DataTable(); dt = rep.GetDataReporRQ(id, TipoDoc); Rpt_Requisicion rpt = new Rpt_Requisicion(); rpt.SetDataSource(dt); rpt.PrintOptions.PrinterName = printer; rpt.PrintToPrinter(1,true, 0, 0); EventLog.WriteEntry("Impreso" + TipoDoc + "_" + id.ToString());
Что я уже пробовал:
Reportes rep = new Reportes(); DataTable dt = new DataTable(); dt = rep.GetDataReporRQ(id, TipoDoc); Rpt_Requisicion rpt = new Rpt_Requisicion(); rpt.SetDataSource(dt); rpt.PrintOptions.PrinterName = printer; rpt.PrintToPrinter(1,true, 0, 0); EventLog.WriteEntry("Impreso" + TipoDoc + "_" + id.ToString());
RickZeeland
Мы понятия не имеем, какую библиотеку или программное обеспечение вы используете, пожалуйста, добавьте дополнительную информацию к вашему вопросу.
Dave Kreskowiak
Во-первых, принтеры, которые вы видите в своей учетной записи, не существуют для системной учетной записи. В системной учетной записи не определены никакие принтеры.
Чтобы обойти это, вам нужно создать учетную запись пользователя для запуска вашей службы. Войдите в консоль с этой учетной записью, настройте нужные принтеры и выйдите из системы. Снова войдите в свою учетную запись и настройте службу для входа в систему с помощью учетной записи, созданной для этой цели.