0

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

4

1 回答 1

0

我所做的是:

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

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

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

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

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

于 2013-03-06T13:26:44.653 回答