Lesestatus vom Zebra-Drucker

Ich arbeite an einem Projekt, in dem wir einen Zebra-Drucker für Barcode-Etiketten verwenden müssen. Wir verwenden C # und arbeiten drucktechnisch einwandfrei, indem wir rohe ZPL-Zeichenfolgen an den Drucker senden (mithilfe von winspool.drv).

Wir müssen aber auch vom Drucker lesen und haben dort kein Glück.

Wir müssen den Status vom Drucker abrufen, der an den ZPL-Befehl "~ HS" ausgegeben wird, damit wir feststellen können, wie viele Etiketten im Speicher darauf warten, gedruckt zu werden. Das EnumJobs () von winspool.drv hat nur Aufträge auf dem Windows-Spool, und sobald sie an den Drucker gesendet wurden, sind sie von dieser Liste verschwunden. Dies bedeutet jedoch nicht, dass das Etikett gedruckt wurde, da der Drucker über einen Abziehsensor verfügt und nur jeweils ein Etikett druckt. Wir sind natürlich daran interessiert, Etikettenstapel an den Drucker zu senden.

Ich habe so etwas versucht (mit den winspool.drv-Aufrufen):

OpenPrinter(szPrinterName, out hPrinter, IntPtr.Zero);
WritePrinter(hPrinter, pBytes, dwCount, out dwWritten); // send the string "~HS"
ReadPrinter(hPrinter, data, buff, out pcRead);

Beim Aufruf von ReadPrinter erhalte ich jedoch nichts. Ich weiß nicht einmal, ob das der richtige Weg ist.

Hat jemand da draußen das schon einmal in Angriff genommen?

Vielen Dank.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage