调用报告后在远程打印机上打印

时间:2013-03-03 01:46:17

标签: c# .net winforms crystal-reports

我们正在使用Visual Basic 2008将使用Visual Basic 6构建的旧版Windows窗体应用程序迁移到.net框架3 / 3.5中,作为持续需求的一部分。 有一项要求:获取打印机列表。打印机存在于网络上的远程位置。如果用户选择打印机,系统应该能够将水晶报告打印到该特定打印机。我正在使用水晶报表查看器来预览报表,但是一旦我在水晶报表查看器中调用报表,报表也应该发送到网络上打印机下拉列表中选择的打印机。我如何能够在网络上打印到远程打印机?我正在使用c#和vs 2008来实现这一点,作为要求的一部分。

1 个答案:

答案 0 :(得分:0)

我所做的是:

  • 通过数据库查找,XML文件或其他方式手动管理网络打印机名称列表(\ server \ printer1,\ server \ printer2等)。
  • 在客户端页面上,渲染打印机的下拉列表并添加“打印”按钮。
  • 直接在这些控件下,渲染没有标准打印/导出选项的Crystal Viewer。
  • 当客户提交表单/页面时,请根据下拉列表打印机ID进行服务器端打印。

使用在IIS下运行的免费Crystal运行时,您有2个服务器端打印选项。

  1. 旧的,弃用的方式:reportDocument.PrintToPrinter({printer settings}, {page settings}, {reformat})。您在{打印机设置}中传递了打印机名称。

  2. 首选方式:printOutputController.PrintReport({print options})

  3. 注意:方法2中的打印机名称区分大小写,必须安装它才能使System.Drawing.PrinterSettings.InstalledPrinters()显示给运行.NET进程的用户。