Drucker
-
Hallo,
gibt es eine Möglichkeit in C# den Drucker anzusprechen ? Es gib doch bestimmt eine WinApi für den Drucker ?
-
Nicht den Drucker direkt, aber seinen Treiber. Dafür gibt es einen ganzen Namensraum http://msdn.microsoft.com/en-us/library/system.drawing.printing.aspx.
Am besten startest Du mit dem Erzeugen einer Instanz von PrintDocument (http://msdn.microsoft.com/en-us/library/system.drawing.printing.printdocument.aspx). Rufe seine Print-Methode (http://msdn.microsoft.com/en-us/library/system.drawing.printing.printdocument.print.aspx) auf und es wird anfangen, PrintPage-Ereignisse (http://msdn.microsoft.com/en-us/library/system.drawing.printing.printdocument.printpage.aspx) auszulösen. Du abonnierst dieses Ereignis und in dem Ereignishandler, den Du bereitstellst, erzeugst Du die einzelnen Seiten.
Die Anzahl der Seiten, Größe, ein Graphics-Objekt (http://msdn.microsoft.com/en-us/library/system.drawing.graphics.aspx) (Ja, dasselbe wie zum Zeichnen auf dem Bildschirm) bekommst Du als Parameter mit dem Methodenaufruf geliefert.
-
Hi,
wenn du nur den aktuellen Status eines Druckers haben willst, kann ich dir die PrintQueueCollection empfehlen. Habe damit mal Stati der Drucker über die Druckwarteschlange von Windows abgefragt.
LocalPrintServer myPrintServer = new LocalPrintServer(); PrintQueueCollection myCollection = myPrintServer.GetPrintQueues();
Die PrintQueues die da zurück kommen, haben einen Status wie Busy, DoorOpen, Error etc...
Achja: Namespace System.Printing;
Hoffe es hilft weiter.
Grüße, Breaker