Trochę mi zajęło ale już mam, podzielę się:
Znaki sterujące:"
Kopiuj
private static final String STX = new Character((char) 2).toString();
private static final String SOH = new Character((char) 1).toString();
private static final String CR = new Character((char) 0x0d).toString();
Drukuj obrazek :
Kopiuj
private static String komendaDrukujacaObrazekLogo = "1Y"//a i b stałe
+ "11"//Mnożnik szerokosci i wysokośći
+ "000"//stała
+ "0010"//odstęp od dołu
+ "0330"//odstęp od lewej
+ logo;//nazwa obrazka
Przed wczytaniem obrazu czyścimy moduł oraz włączamy pomijanie komend które przed przypadek mogą się włączyć gdy strumień bitowy reprezentujacy obrazek jest ładowany do drukarki:
Kopiuj
String komendaResetujaca = STX + "qA" + CR + SOH + "D" + CR ;
Komenda wczytujaca obrazek-będzie miał nazwe logo (bitmapa do modułu A):
Kopiuj
String komendaWczytaniaObrazuLogo = STX + "I" + "A" + "b" + logo + CR;
Komenda drukujaca etykietę-w tym wypadku tylko obrazek:
Kopiuj
String komendaDrukujaca = STX + "L" + CR
+ "D11" + CR //mnoznik jakości D11-najwyższa
+ "m" + CR //jednostki metryczne
+ komendaDrukujacaObrazekLogo + CR
+ "E" + CR;//koniec komendy
Teraz już tylko należy wszystkie powyższe Stringi reprezentujace komendy skonwertować do tablicy bajtowej np.:
Kopiuj
byte[] BytekomendaWczytaniaObrazuLogo = komendaWczytaniaObrazuLogo.getBytes();
.
.
.
A potem te tablice bajtowe (wszystkie zachowujac oczywiście kolejność) zamienić w jedną dużą tablicę bajtową. Najlepiej zrobić sobie metode ze zmienną ilością argumentów(tablic bajtowych), która ładnie połączy rządaną liczbę tablic.
Tak otrzymaną tabliće wpychamy już tylko na drukarkę-ja miałem ja na USB wiec używałem do tego
Kopiuj
.
.
.
Doc doc = new SimpleDoc(finalCommand, DocFlavor.BYTE_ARRAY.AUTOSENSE, null);
ale nie ma potrzeby korzystania z DocFlavor jak macie ją na com-po prostu kopiujecie na port i tyle.
Pozdrawiam