2016-09-10 1 views
0

J'ai le code suivant pour tester l'impression sur une imprimante spécifique. Le code envoie l'impression à l'imprimante correcte. Mais j'ai des avis à la fin de l'impression, l'imprimante par défaut du système a changé.PrintDocument.PrinterSettings.Print() Modification de l'imprimante par défaut

Je pensais que peut-être que la propriété PrinterName définissait l'imprimante par défaut, et j'ai rapidement réalisé que ce n'était pas le cas. Je dois supposer que cela se passe dans la méthode Print().

J'ai fait quelques lectures sur le changement de l'imprimante par défaut, les solutions que j'ai trouvées semblaient utiliser l'espace de noms System.Management. Mais n'a rien trouvé lié à la modification de l'imprimante par défaut dans l'espace de noms System.Drawing.Printing.

Je me dis qu'il pourrait y avoir un moyen simple de le changer en utilisant le même espace de noms qui l'a utilisé en premier lieu. Autre que réimprimer le document ou un document vierge à l'imprimante par défaut précédente.

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(); 
    } 

Répondre

2

Après avoir posé cette question, je continue la recherche, et a constaté que les fenêtres 10 gère tranquillement l'imprimante par défaut la dernière imprimante qui est imprimé à partir (par défaut).

Si vous rencontrez un problème sur une machine Windows 10 sur laquelle l'imprimante par défaut change après un travail d'impression. Assurez-vous de changer cela. enter image description here