【发布时间】:2016-09-10 16:31:08
【问题描述】:
我有以下代码,用于测试打印到特定打印机。该代码将打印件发送到正确的打印机。但我在完成打印后注意到,系统默认打印机已更改。
一开始我想也许是 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();
}
【问题讨论】:
标签: c# printing windows-10 printdocument