Array
(
)

impressão de acentos em impressoras matriciais

Foi
   - 28 dez 2005

pessoal,
estou com um problema de impressão de acentos em impressoras matriciais.
O problema é que os acentos não estam saindo. No lugar sai um caracter diferente.
Estou usando drive generico somente texto na impressora e a porta é LPT1.
como resolver o problema


Eixox
   - 28 dez 2005

Já foram colocadas N... explicações sobre isso aqui no forum. Não é preguiça nem falta de vontade para responder a sua pergunta, mas é que já foram realmente postadas várias respostas com relação a esse assunto.

Não me leve a mal.


Anfm
   - 28 dez 2005

Usando comandos da impressora podemos fazer isto de uma forma bastante simples. Quando enviamos o caractere ASCII número 8 (oito) para a impressora, a cabeça de impressão retrocede uma posição, pois este caractere é o BackSpace. Então podemos imprimir a letra sem acento e, em seguida, voltar e imprimir o acento desejado. Vejamos um exemplo:

- Coloque um botão no form;

- Altere o evento OnClick deste botão conforme abaixo: }

procedure TForm1.Button2Click(Sender: TObject);
var
F: TextFile;
begin
AssignFile(F, ´LPT1´);
Rewrite(F);
try
{ Regra: caractere sem acento + chr(8) + acento }
WriteLn(F, ´Este e´ + #8 + ´´´´ + ´ um teste.´);
WriteLn(F, ´Acentuac´ + 8 + ´,a´ + 8 + ´~o.´);
WriteLn(F, ´Vovo´ + 8 + ´^´);
WriteLn(F, ´U´ + 8 + ´´´´ + ´ltimo.´);
WriteLn(F, 12); // Eject
finally
CloseFile(F);
end;
end;
Observações

Usando este recurso, a acentuação não fica excelente, mas melhora bastante.

Dica retirada do arquivo DTDelphi 2.7