bom, sou novo aqui e gostaria de pedir a ajuda de vcs para resolver um problema que estou tendo ao tentar imprimir com a impressora MP-4200 TH, quando tento imprimir algum caractere com acento como ç ou ã por exemplo, ela esta imprimindo o caractere referente antecedido por um ‘T’ minusculo antes do caractere ficando Tç por exemplo, estou usando o código retirado de outro tópico do fórum que discutia sobre impressão e formatação de texto nessa mesma impressora, eu cheguei a perguntar la, mas como a ultima postagem nele antes da minha foi em maio e ele ta marcado como resolvido achei melhor abrir outro tópico para pedir a ajuda de vcs.
estou mandando o caractere para ela da seguinte maneira: “”+(char)135
ela está com a configuração default dela (tabela de códigos 850)
o tópico mencionado anteriormente é este:
gostaria de aproveitar também para agradecer o Marcos Roberto da Fonseca que criou o tópico acima, o código dele ajudou muito.
Também estou com o mesmo problema. Verifiquei que no documento de configuração existem várias opções, tentei varias, mas, ainda não consegui. Se teve sucesso, posta ai a solução. Valeu.
Segue a baixo a lista com as possíveis configurações:
[Function] Codepage selection.
[Format] ASCII ESC t n
Hexadecimal 1B 74 n
Decimal 27 116 n
[Range] 2 ≤ n ≤ 12; n = 14; n = 21
[Default] n = 2
[Description] This command selects the code page to be used, according to the following options.
If n is 2 (02h or 32h), CODEPAGE 850 is selected.
If n is 3 (03h or 33h), CODEPAGE 437 is selected.
If n is 4 (04h or 34h), CODEPAGE 860 is selected.
If n is 5 (05h or 35h), CODEPAGE 858 is selected.
If n is 6 (06h or 36h), CODEPAGE 866 is selected.
If n is 7 (07h or 37h), CODEPAGE 864 is selected.
If n is 8 (08h or 38h), UTF8 (Unicode) is selected.
If n is 9 (09h or 39h), Big-5E is selected.
If n is 10 (0Ah or 3Ah), JIS is selected.
If n is 11 (0Bh or 3Bh), SHIFT JIS is selected.
If n is 12 (0Ch or 3Ch), GB2312 is selected.
Um exemplo da implementação ficaria assim:
public String getTabelaCaracteres() {
return “” + (char) 27 + (char) 116 + (char) 2;
}
oi, em 1º lugar quero pedir desculpas por não ter atualizado o tópico, acabei esquecendo, foi mal :S
bem, eu consegui resolver o problema, o código
return "" + (char) 27 + (char) 116 + (char) 2;
ta certo fabiofb7, vai la em propriedades do projeto agora e muda o charset que ele usa, para iso-8859-1, fiz isso no meu e funcionou normalmente a impressão, vc tambem precisará trocar os caracteres especiais do texto por seus respectivos códigos ascii antes de mandar o texto para a impressão, to postando junto dessa resposta a interface que criei com os códigos, pode usar a vontade.
package util.interfaces;
public interface CaracteresEspeciaisAscII {
public static final char C_CEDILHA_UPPER_CASE = 128;
public static final char U_TREMA_LOWER_CASE = 129;
public static final char E_AGUDO_LOWER_CASE = 130;
public static final char A_CIRCUNFLEXISO_LOWER_CASE = 131;
public static final char A_TREMA_LOWER_CASE = 132;
public static final char A_GRAVE_LOWER_CASE = 133;
public static final char C_CEDILHA_LOWER_CASE = 135;
public static final char E_CIRCUNFLEXO_LOWER_CASE = 136;
public static final char E_TREMA_LOWER_CASE = 137;
public static final char E_GRAVE_LOWER_CASE = 138;
public static final char I_TREMA_LOWER_CASE = 139;
public static final char I_CIRCUNFLEXO_LOWER_CASE = 140;
public static final char I_GRAVE_LOWER_CASE = 141;
public static final char A_TREMA_UPPER_CASE = 142;
public static final char E_AGUDO_UPPER_CASE = 144;
public static final char O_CIRCUNFLEXO_LOWER_CASE = 147;
public static final char O_TREMA_LOWER_CASE = 148;
public static final char O_GRAVE_LOWER_CASE = 149;
public static final char U_CIRCUNFLEXO_LOWER_CASE = 150;
public static final char U_GRAVE_LOWER_CASE = 151;
public static final char O_TREMA_UPPER_CASE = 153;
public static final char U_TREMA_UPPER_CASE = 154;
public static final char A_AGUDO_LOWER_CASE = 160;
public static final char O_AGUDO_LOWER_CASE = 162;
public static final char U_AGUDO_LOWER_CASE = 163;
public static final char N_TILDE_LOWER_CASE = 164;
public static final char N_TILDE_UPPER_CASE = 165;
public static final char ORDF = 166;
public static final char DEG = 167;
public static final char A_AGUDO_UPPER_CASE = 181;
public static final char A_CIRCUNFLEXO_UPPER_CASE = 182;
public static final char A_GRAVE_UPPER_CASE = 183;
public static final char A_TILDE_LOWER_CASE = 198;
public static final char A_TILDE_UPPER_CASE = 199;
public static final char E_CIRCUNFLEXO_UPPER_CASE = 210;
public static final char E_TREMA_UPPER_CASE = 211;
public static final char E_GRAVE_UPPER_CASE = 212;
public static final char I_AGUDO_UPPER_CASE = 214;
public static final char I_CIRCUNFLEXO_UPPER_CASE = 215;
public static final char I_TREMA_UPPER_CASE = 216;
public static final char I_GRAVE_UPPER_CASE = 222;
public static final char O_AGUDO_UPPER_CASE = 224;
public static final char O_CIRCUNFLEXO_UPPER_CASE = 226;
public static final char O_GRAVE_UPPER_CASE = 227;
public static final char O_TILDE_LOWER_CASE = 228;
public static final char O_TILDE_UPPER_CASE = 229;
public static final char U_AGUDO_UPPER_CASE = 233;
public static final char U_CIRCUNFLEXO_UPPER_CASE = 234;
public static final char U_GRAVE_UPPER_CASE = 235;
}
Bom, o projeto já estava configurado (iso-8859-1), o problema com os caracteres especiais ainda não testei, agora o problema maior é a fonte que não consigo configurar para o padrão da impressora. A fonte que esta sendo impressa ocupa muito espaço, assim, estou tentando usar o padrão da impressora que me atenderia perfeitamente. Obrigado.
Tentei enviar alguns comandos para impressora com os códigos que você postou. Bom, uma das tentativas foi enviar o comando “C_CEDILHA_UPPER_CASE = 128” porém, o que acontece é que o “Ç” é impresso logo no inicio da folha, mas, os caracteres que tem “ç” que enviei para impressão não são trocados e continuam sendo impressos errados. Poderia me dar uma dica de como enviou estes comandos para impressora. Obrigado.