Impressão de Cheques(Urgente)

Delphi

02/06/2003

Alguém pode me ajudar, tenho um sistema de impressão de cheques e utilizo a instrução CANVAS para imprimir os campos no cheque, até aí tudo bem mas o problema é imprimir o valor do cheque pois este sai muito embaixo, tipo na instrução eu uso ´canvas.textout(600,0,w_val)´
Utilizo uma epson LX 300 e não estou conseguindo... Se eu tento regular manualmente na impressora, ele imprime ou cortado ou o valor só que ilegível... Se alguém puder me ajudar agradeço desde já.
Tiago.


Mrtiago

Mrtiago

Curtidas 0

Respostas

Rodrigo Coutinho

Rodrigo Coutinho

02/06/2003

quando vc usa o canvas vc que assume o tamanho sobre a fonte e isso é ruim mande a impressão p/ a porta da impresso e deixe que a matricial faça o resto

Var Imp: textfile;
Begin
AssignFile(imp, ´Lpt1´);
Reset(imp);
whiteln(imp, txt);
CloseFile(Imp);
End;

[], Rodrigo Coutinho


GOSTEI 0
Marconi

Marconi

02/06/2003

Quando utilizar o Canvas.TextOut é muito importante verificar qual o tamanho da folha que esta como padrão na Impressora.
Tente trocar entre A4 e Carta (Letter) vai dar diferença por causa da magem superior.


Marconi


GOSTEI 0
Mrtiago

Mrtiago

02/06/2003

Tá, mas como vou mandar mais de um campo, como vou posicionar no cheque os campos que quero imprimir???

Obrigado.


GOSTEI 0
Marconi

Marconi

02/06/2003

Quando voce esta utilizando o modo texto atraves do Writeln, como sugeriu o Rodrigo, voce pode fazer o seguinte:

Writeln(imp,chr(27)+´@´); // reseta a impressora // 10 ccp é o default
writeln(imp,chr(15)); // se quiser caracteres comprimidos 16.67 ccp
writeln(imp,chr(18)); // para caracteres 10 ccp (caracteres por polegada)

Com os comandos acima a impressora não pula linhas, mas voce pode compor textos e comandos, por exemplo:

Writeln(imp,chr(27)+´@´+StringOfChar(´ ´,30)+floatToStrF(valor,ffNumber,10,2));

Na linha acima eu resetei a impressora, o contador de linhas passou então para 0 (zero), 66 linhas por página, e 10 ccp no modo draft. Então joguei 30 espaços em branco e o valor (real) no formato ffNumber com 2 casas após a virgula. Aqui o formato poderia ser ffCurrency que colocaria o Simbolo ´R$´ antes do número.

A cada Writeln com texto a impressora deve passar para próxima linha. Se não acontecer voce pode acrescentar no fim de cada texto um chr(13), o que obriga ela a mudar de linha. O comando chr(12) obriga ela a ir para a próxima página.

Tanto o espaçamento entre linhas, como o total de linhas de cada página, voce pode trocar com comandos ESC-P da Epson. Voce deve encontra-los no manual da Impressora.

Os manuais são graciosos na própria página da www.epson.com.

Se não encontrar um manual de ESC-P, eu te mando um.

Marconi


GOSTEI 0
POSTAR