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

时间:2016-09-10 16:31:08

标签: c# printing windows-10 printdocument

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

我想也许起初可能是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();
    }

1 个答案:

答案 0 :(得分:2)

在提出这个问题后,我继续搜索,发现Windows 10默认管理默认打印机到最后一台打印机(默认情况下)。

如果您在打印作业后默认打印机正在更改的Windows 10计算机上遇到问题。一定要改变这个。 enter image description here