2016-09-10 5 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

Смежные вопросы