调用报表后在远程打印机上进行打印



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

我做的是:

  • 通过数据库查找,XML文件或其他方式手动管理网络打印机名称列表(serverprinter1, serverprinter2等)。
  • 在客户端页面上,为打印机渲染下拉菜单,并添加"打印"按钮。
  • 直接在这些控制下,呈现一个水晶查看器没有标准的打印/导出选项。
  • 当客户端提交表单/页面时,根据下拉打印机ID进行服务器端打印。

服务器端打印有两种选择:使用IIS下运行的免费Crystal运行时。

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

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

注意:方法2中的打印机名称是区分大小写的,必须安装它,以便在System.Drawing.PrinterSettings.InstalledPrinters()中显示运行. net进程的用户

最新更新