Recibo! Urgente!!!!!!!!!!!!

22/02/2003

0

eu gostaria de saber de como imprimir recibo, tudo de como imprimir recibo.
se vcs poerem me ajudar.
muito obrigado!!!!!!!
:(


Renan

Renan

Responder

Posts

22/02/2003

Anonymous

Têm tantas maneiras de imprimir recibos, usando-se tantos componentes diferentes, que fica difícil responder. Mas se você quer fazer do seu jeito, uma boa maneira é usar a classe TPrinter. Porque aí sai do jeito que você planejar, apesar de dar um pouco de trabalho. Se optar por isso você declara a unit Printers na cláusula Uses e usa a propriedade Canvas, mais ou menos assim.

Printer.Canvas.TextOut(pos1,pos2,´Testo(String)´)...

Abraços.


Responder

23/02/2003

Anonymous

Bem amigo uma forma prática usando a idéia do amigo anterior
seria vc criar um form com tudo do recido ...vc pode usar sharp normal ...label...em fim vc deixa o forma com a cara de seu recibo e assim o usuário pode até editar o recibo vc colocando Edit sem bordas ...
bem acho q vc entendeu e por fim vc pode usar este código para imprimir a tela :

O exemplo a seguir é um procedimento para imprimir um form. Para imprimir o form, basta informar o nome do mesmo como parâmetro: PrintForm(Form1). Antes de imprimir, a cor atual do form é salva em OldColor e alterada para clWhite (frm.Color := clWhite), para evitar gasto excessivo de tinta da impressora (ou tonner).

PrintForm
uses
Windows, SysUtils, Printers, Forms, Graphics, Controls, Classes;
.
.
.
procedure PrintForm(frm: TForm);
var
bmp: TBitMap;
x, y, WDPI, HDPI: Integer;
OldColor: TColor;
begin
Screen.Cursor := crHourGlass;
OldColor := frm.Color;
frm.Color := clWhite;
frm.Update;
bmp := frm.GetFormImage;
with Printer do
begin
Orientation := poLandscape;
BeginDoc;
HDPI := PageHeight div 8;
WDPI := PageWidth div 8;
x := PageWidth - Round(WDPI * 0.4); {0.4´ margem direita}
y := PageHeight - Round(HDPI * 0.5); {0.5´ Altura do rodapé}
Canvas.StretchDraw(Rect(0, 0, x, y), bmp);
EndDoc;
end;
bmp.Free;
frm.Color := OldColor;
Screen.Cursor := crDefault;
end;


Detale ele assim só irá impimir a area cliente e

o termo

Canvas.StretchDraw(Rect(0, 0, x, y), bmp);

irá dimecionar no tamanho na folha padrão do printer q geralmente é
A4 , se vc quiser imprimir como meia folha é usar :

Canvas.StretchDraw(Rect(0, 0, x, y div 2), bmp);

E ficará muito bom ...qualquer dúvida se isto te ajudar entre em contato


Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar