Estado de lectura de la impresora Zebra
Estoy trabajando en un proyecto en el que necesitamos usar una impresora Zebra para etiquetas de códigos de barras. Estamos usando C #, y estamos bien en el lado de la impresión, enviando cadenas ZPL sin procesar a la impresora (usando winspool.drv).
Sin embargo, también necesitamos leer de la impresora, y no hay suerte allí.
Necesitamos obtener el estado de la impresora, que es la salida del comando ZPL "~ HS", por lo que podemos saber cuántas etiquetas hay en la memoria esperando para ser impresas. Los EnumJobs () de winspool.drv solo tienen trabajos en la cola de ventanas, y una vez que se envían a la impresora, desaparecen de esa lista. Pero eso no significa que la etiqueta se haya impreso, ya que la impresora tiene un sensor de desprendimiento y solo imprime una etiqueta a la vez, y obviamente estamos interesados en enviar lotes de etiquetas a la impresora.
He intentado algo como (usando las llamadas winspool.drv):
OpenPrinter(szPrinterName, out hPrinter, IntPtr.Zero);
WritePrinter(hPrinter, pBytes, dwCount, out dwWritten); // send the string "~HS"
ReadPrinter(hPrinter, data, buff, out pcRead);
Pero no consigo nada en la llamada ReadPrinter. Ni siquiera sé si esta es la forma correcta de hacerlo.
¿Alguien por ahí abordó esto antes?
Gracias.