如何:从 Windows 程序打印

本部分介绍如何从本机 Windows 程序打印。

概述

打印通常是本机 Windows 程序不可或缺的一部分。 因此,这不是在编写程序后可以轻松添加的功能。 话又说,如果程序设计为使用 XPS 文档,则不需要太多(如果有)额外的代码来呈现文档内容进行打印。 应用程序的 XPS 文档可以直接发送到具有 XPSDrv 打印机驱动程序的打印机。

使用 XPS 文档 API 创建文档内容,使用 XPS 打印 API 将文档内容发送到打印机。 XPS 打印 API 处理目标打印机的文档内容。 如果所选打印机具有 XPSDrv 打印机驱动程序,则文档将发送到打印机,而无需进行任何其他转换。 如果所选打印机具有基于 GDI 的打印机驱动程序,则程序还可以将内容发送到打印机,XPS 打印 API 将转换文档内容,使其与基于 GDI 的打印机驱动程序兼容。 在任一情况下,应用程序执行的处理都是相同的。

打印任务

以下主题介绍打印程序内容的基本步骤。

  1. 从用户收集打印作业信息。

    通常,当用户从菜单中选择打印选项时,会启动打印作业,并且程序会显示一个打印对话框来收集打印作业的详细信息。 用户通常选择打印机、份数和打印机配置详细信息,例如双面打印和装订。

    有关如何执行此操作的信息,请参阅 如何:从用户收集打印作业信息

  2. 创建进度指示器。

    进度指示器为用户提供有关打印作业进度的反馈。 进度指示器可以是进度栏,该进度条可以是包含作业的“取消”按钮的对话框的一部分,也可以是main窗口底部状态栏中的进度栏。

    有关进度指示器的工作原理的信息,请参阅 如何:显示打印作业进度

    有关如何显示打印作业进度的详细信息,请参阅 Windows 应用程序 UI 开发 指南中的信息。

  3. 启动打印线程。

    程序从用户那里收集打印作业信息后,可以启动打印线程以执行文档的实际处理以供打印。

    有关打印线程的信息,请参阅 如何:启动和停止打印线程

  4. 呈现打印作业数据。

    打印线程呈现用于打印的文档数据。 应将此处理分解为离散处理步骤,以便用户可以中断处理和取消作业,以及不允许处理线程阻止其他线程和进程。

    有关如何呈现打印作业数据的信息,请参阅 如何:呈现打印作业数据

  5. 监视打印作业进度。

    在执行每个处理步骤时,请更新进度栏以通知使用。 计算处理步骤以完成请求的作业,然后在执行这些步骤时更新进度栏。

  6. 关闭打印作业并终止打印线程。

    程序将打印作业发送到打印机后,或者如果用户取消了打印作业,则必须关闭打印作业并释放打印作业使用的资源。

如何:从用户收集打印作业信息