Problema de impressão com a impressora bematech MP 4200 TH

5 respostas
R

oi, tudo bem?

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.

aguardo pela ajuda de vcs, muito obrigado.

5 Respostas

F

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;

}
D

Como vocês estão enviando a impressão?

R

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;

}
F

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.

F

Oi rck13.

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.

Criado 18 de julho de 2013
Ultima resposta 20 de ago. de 2013
Respostas 5
Participantes 3