Olá pessoal.
Não sei se aqui seria o local correto para postar essa dúvida, mas caso não seja, peço ao pessoal da moderação que a mova para o lugar apropriado.
Meu problema é o seguinte, estou trabalhando com uma impressora térmica da epson e estou com um problema quando vou imprimir aquele código de barras 2D ( PDF 417 ).
Os comando da impressora são passados como int porem fazendo um cast para char, exemplo :
int len = str.length();
int pl = ((len+3) % 256);
int ph = ((len+3) / 256);
t.append((char)29);
t.append((char)40);
t.append((char)107);
t.append((char)pl);
t.append((char)ph);
t.append((char)48);
t.append((char)80);
t.append((char)48);
t.append(str);
O meu problema aqui é quando tenho que passar o valor da variável pl, se o valor for entre 128 e 160, ele manda 1 valor totalmente errado.
Eu fiz um for :
for(int k = 0; k <= 256; k++)
System.out.println(k + " - " + (char)k);
E quando ele imprime os valores entre 128 e 159, ele imprime o caracter “?” … A pergunta é, como eu faço para pegar o caracter correto ?
Pesquisei no forum pra ver se encotrava algo parecido com isso, mas não encontrei, vi alguns topicos relacionados, mas nenhum que tenha ajudado.
Agradeço qualquer ajuda.
Grato
Ronaldo.