Я написал следующий код как,
Dim report As New ReportDocument
report.PrintOptions.PrinterName = "\\network\printer"
report.Load(CrystalReportName.rpt, OpenReportMethod.OpenReportByDefault)
report.PrintToPrinter(1, False, 0, 0)
когда я пытаюсь запустить этот код, он показывает сообщение об ошибке как "Invalid Printer Specified". Если я дам имя локального принтера, он работает нормально. Но я не могу распечатать отчет о кристалле непосредственно на сетевом принтере. Нужна помощь. Спасибо заранее.
Sivakumar.P
Возможно, имя принтера неверно.
Пожалуйста, используйте следующий код, чтобы отлаживать, какое имя подходит при выборе сетевого принтера.
http://www.codeproject.com/KB/printing/printtoprinter.aspx
а затем назначьте собственное имя.
Однако, если он не работает, может возникнуть проблема с разрешением, а затем посмотрите
http://forums.asp.net/t/1383129.aspx
Удачи,
Если у кого-то еще есть эта проблема:
В документе отчета о кристалле, который вы пытаетесь распечатать, перейдите к:
Дизайн → Настройка страницы
Возможно, выбран принтер по умолчанию, который не установлен на вашей стороне сервера. Удалите или замените его и сохраните документ. Затем запустите свой .Net-код, чтобы установить принтер динамически, если хотите.
Используйте этот код, чтобы знать установленные принтеры
Imports System.Drawing
Imports System.Drawing.Printing
и этот код в функции загрузки... вы правильно заполните поле со списком с принтерами и их именами, а затем используйте свой код
For Each Printer In PrinterSettings.InstalledPrinters
cmbPrinters.Items.Add(Printer)
Next
Пользовательские обратные слезы i.e\\перед сетью и 2 обратной косой черты i.e\before printername
\\\\[Network Address]\\[printer name]
Для тех, у кого есть аналогичная проблема, это может быть решение:
report.PrintOptions.PrinterName = "\\\\\\\\network\\\\printer"
В ASP.Net простое и приятное решение заключается в установке тех же драйверов принтера (например, hp или zebraa), в том числе версии на сервере и в клинике meachine, он будет работать с @\\\ipaddress\printername
.