2016-09-10 17 views
0

特定のプリンタへの印刷をテストするために、次のコードがあります。コードは、正しいプリンタに印刷を送信します。しかし、私は印刷物の完成に気づきました。システムのデフォルトプリンタが変更されました。PrintDocument.PrinterSettings.Print()デフォルトプリンタを変更する

おそらく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(); 
    } 

答えて

2

、私が探し続けて、窓が10静かに(デフォルトでは)から印刷された最後のプリンタにデフォルトのプリンタを管理していることが分かりました。

印刷ジョブの後にデフォルトプリンタが変更されているWindows 10マシンで問題が発生している場合。これを必ず変更してください。 enter image description here

関連する問題