教程:打印和设置打印选项

简介

可以利用代码而不是利用 Crystal Reports 的用户界面来配置打印选项和调用打印机。为此,您要使用 ReportDocument 对象模型的 PrintOptions 类和 PrintToPrinter() 方法。

如果 CrystalReportViewer 控件的工具栏上的“打印”按钮可以满足打印需要,就不需要编写代码来配置其他打印选项了。

不过,在特定情况下,使用基于代码的方法打印报表是很有用的:

  • 可以控制在何时、何处以及如何进行打印。为此,需要禁用 CrystalReportViewer 控件的工具栏中的“打印”按钮,然后通过代码管理所有的打印。
  • 可以在后台打印报表,而不显示报表。所有的“打印”设置都包含在 ReportDocument 模型中,可以对该模型进行实例化和配置,从而不必使用 CrystalReportViewer 控件显示报表。
  • 可以将 Web 客户端的所有打印都集中到 Web 服务器上。使用 PrintToPrinter() 方法将打印作业发送到连接在 Web 服务器上的打印机,而不是将打印作业发送到连接在 Web 客户端上的本地打印机。
    Note注意

    此后台打印功能不如 Crystal Reprots Server 或 BusinessObjects Enterprise 提供的报表计划框架应用广泛。有关这些产品的更多信息,请参见“升级选项”

要开始本教程,您要在 Web 窗体或 Windows 窗体上添加几个列表控件以在 CrystalReportViewer 控件上方设置打印选项。

然后,在代码隐藏类中,创建一个 CURRENT_PRINTER 字符串常量,并将要使用的打印机的路径赋给它。

接下来,要将每个列表控件都绑定到一个枚举,该枚举包含纸张方向、纸张大小和打印机双面打印等设置的打印选项。一个附加的列表控件会显示当前在 CURRENT_PRINTER 常量中指定的打印机的自定义纸张来源设置。对于自定义纸张来源控件,要创建一个用来实例化 PrinterSettings 的帮助器方法,将该帮助器方法赋给当前打印机,然后为该打印机返回一个纸张来源的数组。

然后,您将为“打印报表”按钮创建一个按钮单击事件方法。在该事件方法中,每个打印选项属性都将被赋值,该值基于列表控件中所做的选择。最后,该报表会被打印到 CURRENT_PRINTER 常量中指定的打印机。

示例代码

此教程附带 Visual Basic 和 C# 示例代码,这些代码显示了项目完成后的版本。请按照本教程中的说明创建新项目或打开示例代码项目,以利用完成后的版本进行工作。

示例代码保存在按语言和项目类型分类的文件夹中。各示例代码版本的文件夹名称如下:

  • C# 网站:CS_Web_RDObjMod_SetPrintOptions
  • C# Windows 项目:CS_Win_RDObjMod_SetPrintOptions
  • Visual Basic 网站:VB_Web_RDObjMod_SetPrintOptions
  • Visual Basic Windows 项目:VB_Win_RDObjMod_SetPrintOptions

欲知包含这些示例的文件夹的位置,请参见“教程的示例代码目录”

在此节中: