【问题标题】:How to skip the dialog of printing in printDocument.print() and print page directly?如何跳过 printDocument.print() 中的打印对话框并直接打印页面?
【发布时间】:2012-05-13 14:10:49
【问题描述】:

当我在用 C# 编写的 Windows 应用程序中使用 MyPrintDocument.print() 时,会显示一个对话框,用于处理带有取消按钮的 Windows 处理打印例程。我不想显示这个对话框,可以吗?

如果不是,我应该使用哪种方式?我的程序使用热敏打印机。

【问题讨论】:

    标签: c# .net winapp


    【解决方案1】:

    你使用的是哪个PrintController

    .NET Framework 包括三个派生自PrintController 的打印控制器,可帮助完成常见任务。 StandardPrintController 将文档打印到打印机。 PreviewPrintController 生成打印时文档外观的预览,并由PrintPreviewControlPrintPreviewDialog 类使用。 PrintControllerWithStatusDialog 在打印过程中提供打印状态对话框。

    听起来你正在使用PrintControllerWithStatusDialog PrintController


    警告:我无法验证基本 PrintController 的行为方式是否不同。

    根据这个MSDN Forum Posting PrintControllerWithStatusDialog 是默认值:

    他建议是这样的:

    MyPrintDocument.PrintController = new System.Drawing.Printing.StandardPrintController();
    

    【讨论】:

      【解决方案2】:

      如果您不分配PrintDocument.PrintController 属性,那么您将获得一个默认打印控制器。 PrintControllerWithStatusDialog 的一个实例,它显示进度对话框、计算页数并通常通知用户程序由于某种原因无响应但未挂起。

      只需在表单构造函数中重新分配它。样板代码是:

      Public Class Form1
          Public Sub New()
              InitializeComponent()
              PrintDocument1.PrintController = New System.Drawing.Printing.StandardPrintController
          End Sub
      End Class
      

      而且您必须执行其他操作来告诉用户打印正在进行中。至少显示一个hourglass cursor

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多