2015-12-22 3 views
0

Я печатаю квитанции от устройства android к zebra imz 220, часть квитанции содержит штырь, который имеет больший размер текста для удобства чтения, но этот раздел не печатает правильно, половина текста отсутствует:Получение печати с zpl на zebra imz220 - android

pin section 1

при печати в разделе штырьковых квитанций я установить длину этикетки и распечатать необходимые поля, посылая следующие команды:

zebraPrinter.sendCommand (» ! U1 setvar \ "zpl.label_length \" \ "50 \" \ n \ r ");

 zebraPrinter.sendCommand( "^XA^" + 
       "FO0,0^FB384,1,0,C,0^ADI,18,10^FDData^FS^" + 
       "XZ"); 

     zebraPrinter.sendCommand( "^XA^" + 
       "FO0,0^FB384,1,0,C,0^ADI,18,10^FD.............................^FS^" + 
       "XZ"); 

     zebraPrinter.sendCommand( "^XA^" + 
       "FO0,0^FB384,1,0,C,0^ADI,18,10^FDData Token:^FS^" + 
       "XZ"); 

     zebraPrinter.sendCommand( "^XA^" + 
       "FO0,0^FB384,1,0,C,0^ADI,18,10^FD(123,R123.23)^FS^" + 
       "XZ"); 

     zebraPrinter.sendCommand( "^XA^" + 
       "FO0,0^FB384,2,0,C,0^ADI,36,20^FD"+pin+"^FS^" + 
       "XZ"); 

     zebraPrinter.sendCommand( "^XA^" + 
       "FO0,0^FB384,1,0,C,0^ADI,18,10^FD123 @ 0.11c "+"^FS^" + 
       "XZ"); 

     zebraPrinter.sendCommand( "^XA^" + 
       "FO0,0^FB384,1,0,C,0^ADI,18,10^FD..............................^FS^" + 
       "XZ"); 

, если изменить длину этикетки от 50 до 75, то все поле штифта видно, но расстояние между этой секцией становится нежелательным:

pin section 2

Как можно сохранить расстояние между когда его длина установлена ​​равной 50, не заслоняя поле штыря?

Любые указатели в правильном направлении будет принята с благодарностью!

ответ

0

Похоже, вы используете ZPL. Возможно, лучше создать один ярлык вместо отправки нового ярлыка для каждой строки вашего квитанции. Вы можете окружить всю свою метку одним XA и^XZ. Смотри ниже. Преимуществом этого является то, что вы можете вручную установить позицию для каждой строки текста и, таким образом, увеличить высоту линии для строки «pin». Кроме того, вы только один раз открываете сообщение на свой принтер, чтобы он выполнял (незначительно) быстрее. Пример:

StringBuilder zplString = new StringBuilder(); 
zplString.append("^XA"); 
zplString.append("FO0,0^FB384,1,0,C,0^ADI,18,10^FDData^FS^""); 
zplString.append("FO0,50^FB384,1,0,C,0^ADI,18,10^FD.............................^FS^"); 
zplString.append("FO0,100^FB384,1,0,C,0^ADI,18,10^FDData Token:^FS^"); 
zplString.append("FO0,150^FB384,1,0,C,0^ADI,18,10^FD(123,R123.23)^FS^"); 
zplString.append("FO0,200^FB384,2,0,C,0^ADI,36,20^FD"+pin+"^FS^"); 

// Notice we set starting position (FO) to 0,300. This gives our previous line (the pin line) more room. 
zplString.append("FO0,300^FB384,1,0,C,0^ADI,18,10^FD123 @ 0.11c "+"^FS^"); 
zplString.append("FO0,350^FB384,1,0,C,0^ADI,18,10^FD..............................^FS^"); 
zplString.append("^XZ"); 

// only send the command once since it includes the entire label 
zebraPrinter.sendCommand(zplString.toString()); 

Примечание: если вы берете этот подход, вы должны рассчитать начальную X, Y позиции для каждой строки текста. Это означает, что вам нужно будет изменить каждое начало FO0,0 на что-то вроде FO00, FO0,50, FO0,100 и т. Д. Второй параметр каждой команды FO - это начальная позиция «Y» для этой линии. Таким образом, вы можете просто увеличить линию ПОСЛЕ линии с помощью штыря к чему-то более высокому, чтобы текст не перекрывался.

Смежные вопросы