我编写的一个程序用于将运输标签发送到标签打印机 - 或者更准确地说,发送到五台打印机,每台打印机都使用我设置的单独驱动程序。每台打印机的吞吐量为每三秒一次,因此会弹出很多窗口,显示“正在打印 - 文档第 1 页” - 有时五台打印机同时出现 - 我们计划将该程序扩展到 10 台打印机。有没有办法将驱动程序配置为不显示此窗口?该程序和驱动程序位于运行 Windows Server 2012 R2 的计算机上。该驱动程序适用于 InterMec px4i 打印机,我在 C# .NET 4.0 下使用 System.Drawing.Printing。
答案1
事实证明,是默认打印控制器本身导致窗口出现。System.Drawing.Printing 为所有新的 PrintDocuments 提供默认打印控制器。在设置要打印的页面时,我的程序会执行以下语句:
PrintDocument pd = new PrintDocument();
pd.PrinterSettings.PrinterName = PrinterName;
...
我为解决这个问题所做的是使用默认构造函数给它一个新的打印控制器:
pd.PrintController = new StandardPrintController();
现在没有弹出“正在打印...”窗口,这也明显提高了我的程序的性能。我希望这可以帮助其他遇到此问题的人,但它可能应该转移到 StackOverflow,因为这是一个编程问题,而不是 Windows 问题。