Foros del Web » Programación para mayores de 30 ;) » .NET »

Spool de impresion C#

Estas en el tema de Spool de impresion C# en el foro de .NET en Foros del Web. Hola gente del foro. Soy nuevo aqui y ya que no he podido encontrar una respuesta a una duda que tengo he decidido registrarme y ...
  #1 (permalink)  
Antiguo 03/05/2008, 15:29
 
Fecha de Ingreso: mayo-2008
Mensajes: 2
Antigüedad: 16 años
Puntos: 0
Spool de impresion C#

Hola gente del foro. Soy nuevo aqui y ya que no he podido encontrar una respuesta a una duda que tengo he decidido registrarme y postear mi duda para ver si alguien puede ayudarme. Aqui va la duda.

Estoy imprimiendo desde c# usando las librerias de System.Drawing.Printing.
Las impresiones se envian correctamente a la cola de impresión y se imprimien bien, el problema es que necesito enviar de a una cada hoja que necesito imprimir siempre y cuando la cola de impresion este vacia; es decir, no tenga trabajos imprimiendo. No he logrado saber el estado del spool usando estas librerias y como el proceso de impresion es automatico no encuentro la forma de "esperar" a que se termine de imprimir una pagina para luego mandar la siguiente.

El evento ToEndPrint, se lanza siempre que la impresión fue almacenada en la cola correctamente por lo que no me sirve, porque lo que estoy tratando de lograr es enviar el nuevo documento cuando el anterior se imprimio efectivamente.

Alguien tiene alguna idea de como lograrlo?

Desde ya muchas gracias por su dedicación. Saludos.
  #2 (permalink)  
Antiguo 04/05/2008, 15:08
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: Spool de impresion C#

Puedes utilizar WMI para obtener la informacion del servicio con algo asi

string PrinterJobs = "SELECT * FROM Win32_PrintJob";

ManagementObjectSearcher FindPrintJobs =

new ManagementObjectSearcher(PrinterJobs);

ManagementObjectCollection prntJobCollection = FindPrintJobs.Get();

foreach (ManagementObject prntJob in prntJobCollection)

{

System.String jobName = prntJob.Properties["Name"].Value.ToString();

char[] JobSplit = new char[1];

JobSplit[0] = Convert.ToChar(",");

string prnterName = jobName.Split(JobSplit)[0];

string documentName = "Doucment Name->" + prntJob.Properties["Document"].Value.ToString() + " Sender Name->" + prntJob.Properties["owner"].Value.ToString();

if (String.Compare(prnterName, printerName, true) == 0)

{

printJobCollection.Add(documentName);

}

}


crearte un timer q evalue q no existan trabajos ne la cola de impresion y cuando no se cumplanc revisar q en tu cola interna de trabajos se envie el trabajo
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 14/05/2008, 05:39
 
Fecha de Ingreso: mayo-2008
Mensajes: 2
Antigüedad: 16 años
Puntos: 0
Re: Spool de impresion C#

Muchas gracias Peterpay; Fue de mucha utilidad lo que me aportaste; y funciono perfectamente. A parte me ayudo a conocer WMI de las cuales no tenía conocimiento.



Ahora planteo otra cuestión referida a lo mismo. Es posible "dialogar" con el Driver de la impresora. ¿Hay algún dirver generico de impresoras en Windows? ¿Hay que importarlo al proyeto?.
o se puede hacer con las WMI. Conocés alguna pagina o sitio donde esten bien detalladas?

Muchas Gracias. Tu ayuda ha sido de un gran aporte.
  #4 (permalink)  
Antiguo 14/05/2008, 06:28
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: Spool de impresion C#

Pues eso si depende mas del driver pero dale una vuelta a mas queries de WMI
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 00:16.