I haven’t been able to print barcodes on the 5890 model thermal receipt printer, and it looks like other developers can’t either.
The same printer is sold under a few names. As far as I can tell (mainly from bug reports to escpos-php), these are all the same printer, and could have this issue:
- AGPtEK SC35-5890F
- EC Line 5890
- Gainscha GP-5890
- HSPOS HS-589C
- POS-5890
- WinBond 5890
- Zjiang ZJ-5890 or POS-5890
In my case, I have a Zjiang POS-5890C, which list the barcode command GS k in its documentation, but does not actually respond to the command.
Separately, a developer has contacted their vendor and confirmed that this is an error in the documentation.
A few bookmarks for reference:
- https://github.com/python-escpos/python-escpos/issues/58
- https://stackoverflow.com/questions/42124722/esc-pos-not-printing-barcodes
How to test for barcode support in USB printers
Get yourself a Linux computer or VM, set up the printer with usblp, and run this command:
echo -e '\x1d\x6b\x04000\x00' > /dev/usb/lp0
This command prints a CODE39 barcode containing ‘000’ on printers which support barcodes, and prints garbage on printers which do not.
See also:
- Getting a USB receipt printer working on Linux
- ZXing (“Zebra Crossing”) – Open source Android app for scanning barcodes
- How to send ESC/POS commands to thermal printer in Linux – Related StackOverflow answer of mine