ticket printform print imprimir form example c# printing

c# - printform - Hablando con una impresora



printdocument c# ticket (2)

Obtener información de las impresoras usando System.Management es relativamente fácil.

//Declare WMI Variables ManagementObject MgmtObject; ManagementObjectCollection MgmtCollection; ManagementObjectSearcher MgmtSearcher; //Perform the search for printers and return the listing as a collection MgmtSearcher = new ManagementObjectSearcher("Select * from Win32_Printer"); MgmtCollection = MgmtSearcher.Get(); foreach (ManagementObject objWMI in MgmtCollection) { //Do whatever action you want with the Printer }

Consulte http://msdn.microsoft.com/en-us/library/aa394363.aspx para conocer los métodos y propiedades de Win32_Printer. Para tu pregunta:

//Test whether a Win32_Printer is out of paper or jammed int state = Int32.Parse(objWMI["PrinterState"]); if (state == 4) { //Paper Jam } else if (state == 5) { //Paper Out }

¿Hay alguna forma de escribir un código que pueda ''hablar'' con la impresora para obtener información básica sobre su estado? Lo que realmente me interesa hacer es descubrir si se ha quedado sin papel o si tiene un atasco de papel, cosas de esa naturaleza. ¿Debo usar la biblioteca System.Management para este tipo de cosas?

PD: también sería útil saber cómo obtener todas las impresoras que se han configurado en una PC en particular. ¿Cómo harías para eso?