sexta-feira, setembro 14, 2012

Quebrar texto ao montar impressão modo texto no Delphi

HI,

Precisei fazer com que um recibo de pagamento para impressora não fiscal fosse impresso em um modelo térmico, uma daruma dr700.

Para o modelo matricial tava usando a dll, mas não consegui usar a desse modelo. Como tava com o tempo curto, resolvi montar da maneira antiga, mandando pra impressora.

Antes tentei usar o forte reports, mas não ficou muito legal, ficou faltando imprimir alguns caracteres na margem direita.

Pesquisando uma alternativa encontrei um monte de exemplos usando a unit TPrinters.

Quando tava implementando, me deparei com um problema, ao fazer o texto continuar na próxima linha, não estava separando de forma correta. Ex: Colégio, fica o "C" numa linha e "olégio" na seguinte.

Consegui resolver esse problema usando os exemplos desses dois sites

WrapText
http://www.delphibasics.co.uk/RTL.asp?Name=WrapText&ExpandCode2=Yes

Delphi: Write multi-line text on a TCanvas
http://shrimpworks.za.net/2006/05/24/delphi-write-multi-line-text-on-a-tcanvas/


Ficou assim para imprimir um texto:


lines.Text := WrapText('Texto a ser impresso em mais de uma linha. Fazendo isso a separação das palavras acontece de forma correta. Espero ter ajudado.', 47);

for I := 0 to lines.Count - 1 do begin
  Canvas.TextOut(Coluna,  Linha, lines[I]);
  Linha := Linha + PuloLinha;
end;



Fiquem na Paz!!!

Nenhum comentário: