Kod POS GS k
ma dwie wersje (jak już odkryto):
GS k - print one dimensional barcode
m - barcode mode selector
[d]k - data bytes
NUL - terminator
Ta wersja działa tylko dla czystych danych ASCII, ponieważ używa terminatora 0x00
(NUL).
GS k - print one dimensional barcode
m - barcode mode selector
n - content length in bytes
[d]k - data bytes
Ta wersja wykorzystuje dodatkowy bajt długości n
wskazać część danych (jest to również nadaje się tylko do niektórych kodowania w tym CODE128
).
Twój kod ma zabłąkane 0x0d
w bajtach polecenia i może również używać niewłaściwego formatu.
Jeśli zamierzasz wydrukować czysty format danych ASCII polecenie tak:
byte[] formats = {(byte) 0x1d, (byte) 0x6b, (byte) 0x49};
byte[] contents = content.getBytes();
byte[] bytes = new byte[formats.length + contents.length + 1];
System.arraycopy(formats, 0, bytes, 0, formats.length);
System.arraycopy(contents, 0, bytes, formats.length, contents.length);
// add a terminating NULL
bytes[formats.length + contents.length] = (byte) 0x00;
lub bardziej bezpiecznej wersji, ponieważ ma również oczekiwaną długość danych:
byte[] contents = content.getBytes();
// include the content length after the mode selector (0x49)
byte[] formats = {(byte) 0x1d, (byte) 0x6b, (byte) 0x49, (byte)content.length};
byte[] bytes = new byte[formats.length + contents.length];
System.arraycopy(formats, 0, bytes, 0, formats.length);
System.arraycopy(contents, 0, bytes, formats.length, contents.length);
Jeśli ani z dwóch prac, a następnie drukarka może po prostu nie obsługiwać CODE128
.
5890 jest na tyle powszechne specyfikacja i istnieje wiele taniej „drop-in” zamienników na rynku, które opuszczają się bardziej kompleksowe wdrożenia kodów kreskowych i tylko obejmują proste codings jak EAN8
, EAN13
itp
sprawdzić, czy twoja drukarka obsługuje drukowanie kodów kreskowych, czy nie ... między którymi drukarka termiczna używasz –
Używam modelu yongli: POS-5890H Szerokość papieru USB 58 mm, Widziałem na specyfikacji jego kod kreskowy wsparcia –