Я пытаюсь создать квитанцию, которая будет распечатываться с устройства Android на принтере TSP100 Star. Я везде искал и не могу найти простой пример печати растровой квитанции (поскольку TSP100 принимает только растр). Я отправил электронное письмо Star, и они прислали мне следующий код, но я не уверен, что это правильно, или как его взять и преобразовать в отформатированное растровое изображение и напечатать его.
byte[] data;
ArrayList<Byte> list = new ArrayList<Byte>();
Byte[] tempList;
list.addAll(Arrays.asList(new Byte[]{0x1b, 0x1d, 0x61, 0x01}));
data = "[If loaded.. Logo1 goes here]\r\n".getBytes();
tempList = new Byte[data.length];
CopyArray(data, tempList);
list.addAll(Arrays.asList(tempList));
list.addAll(Arrays.asList(new Byte[]{0x1b, 0x1c, 0x70, 0x01, 0x00, '\r', '\n'})); //Stored Logo Printing
data = "Company Name\r\n".getBytes();
tempList = new Byte[data.length];
CopyArray(data, tempList);
list.addAll(Arrays.asList(tempList));
data = "Street1\r\nCity, ST, ZIPCODE\r\n\r\n".getBytes();
tempList = new Byte[data.length];
CopyArray(data, tempList);
list.addAll(Arrays.asList(tempList));
list.addAll(Arrays.asList(new Byte[]{0x1b, 0x1d, 0x61, 0x00})); // Alignment
list.addAll(Arrays.asList(new Byte[]{0x1b, 0x44, 0x02, 0x10, 0x22, 0x00})); //Set horizontal tab
data = "Date: 2/22/2012".getBytes();
tempList = new Byte[data.length];
CopyArray(data, tempList);
list.addAll(Arrays.asList(tempList));
list.addAll(Arrays.asList(new Byte[]{' ', 0x09, ' '})); //Moving Horizontal Tab
data = "Time: 9:18 PM\r\n------------------------------------------------\r\n\r\n".getBytes();
tempList = new Byte[data.length];
CopyArray(data, tempList);
list.addAll(Arrays.asList(tempList));
list.addAll(Arrays.asList(new Byte[]{0x1b, 0x45})); // bold
data = "SALE \r\n".getBytes();
tempList = new Byte[data.length];
CopyArray(data, tempList);
list.addAll(Arrays.asList(tempList));
list.addAll(Arrays.asList(new Byte[]{0x1b, 0x46})); // bolf off
data = "SKU ".getBytes();
tempList = new Byte[data.length];
CopyArray(data, tempList);
list.addAll(Arrays.asList(tempList));
list.addAll(Arrays.asList(new Byte[]{0x09}));
// notice that we use a unicode representation because that is how Java expresses these bytes at double byte unicode
// This will TAB to the next horizontal position
data = " Description \u0009 Total\r\n".getBytes();
tempList = new Byte[data.length];
CopyArray(data, tempList);
list.addAll(Arrays.asList(tempList));
data = "34353434 \u0009 SP500\u0009 100.99\r\n".getBytes();
tempList = new Byte[data.length];
CopyArray(data, tempList);
list.addAll(Arrays.asList(tempList));
И Т.Д..
Теперь, чтобы получить из списка ArrayList растровое изображение на принтер. Простой пример квитанции поможет чудесам. Я запросил его у STAR, но не уверен, сколько времени они вернут. Я полагаю, что кто-то там должен был это сделать.
Спасибо.