PrintDocument.PrinterSettings.Print() 更改默认打印机

PrintDocument.PrinterSettings.Print() Changing default printer

我有以下代码,用于测试打印到特定打印机。该代码将打印件发送到正确的打印机。但是我在完成打印时收到通知,系统默认打印机已更改。

我一开始以为 PrinterName 属性 可能正在设置默认打印机,但很快意识到情况并非如此。我必须假设它发生在 Print() 方法中。

我阅读了一些有关更改默认打印机的内容,我发现的解决方案似乎使用了 System.Management 命名空间。但是在 System.Drawing.Printing 命名空间中没有找到与更改默认打印机相关的任何内容。

我认为可能有一种简单的方法可以使用最初使用它的同一命名空间将其改回原样。除了将文档或空白文档重新打印到以前的默认打印机之外。

    static void Main(string[] args)
    {
        Receipt();
    }
    static private void Receipt()
    {
        PrintDocument p = new PrintDocument();
        p.PrinterSettings.PrinterName = "Star HSP7000 Receipt";
        p.PrintPage += delegate(object sender1, PrintPageEventArgs e)
        {
            e.Graphics.DrawString("testtesttestest", new Font("Times New Roman", 12), new SolidBrush(Color.Black), new RectangleF(0, 0, p.DefaultPageSettings.PrintableArea.Width, p.DefaultPageSettings.PrintableArea.Height));
        };
        p.Print();
    }

问完这个问题,我继续搜索,发现windows10悄悄管理Default Printer到上次打印的打印机(默认)。

如果您在 windows 10 机器上遇到打印作业后默认打印机发生变化的问题。确保更改此设置。