Fórum Imprimir imagem com TPrinter #173447
06/08/2003
0
Alguém sabe como imprimir imagem com TPrinter? Tentei mas deu erro: a impressora não está imprimindo, sendo que no word está imprimindo. Alguém pode ajudar?
Earmarques
Curtir tópico
+ 0
Responder
Posts
06/08/2003
Leanribas
Olha eu achei esta dica:
As vezes, quando utilizados os médoto Draw e StretchDraw da propriedade Canvas do objeto TPrinter, a imagem não é impressa, para corrigir isto, utilize esta procedure, que passando como parâmetros a instância Printer.Canvas, Margem Esquerda, Margem Superior
procedure .DrawImage( Canvas : TCanvas; X, Y, Width, Height : Integer; ABitmap : TBitmap);
var
Header, Bits : Pointer;
HeaderSize : Integer;
BitsSize : Longint;
begin
GetDibSizes( ABitmap.Handle, HeaderSize, BitsSize );
Header := AllocMem( HeaderSize );
Bits := AllocMem( BitsSize);
try
GetDib( ABitmap.Handle, ABitmap.Palette, Header^, Bits^);
StretchDIBits(Canvas.Handle,X,Y,Width,Height,0,0,ABitmap.Width,ABitmap.Height,Bits,
TBitmapInfo(Header^),DIB_RGB_COLORS,SRCCOPY);
finally
FreeMem( Header, HeaderSize);
FreeMem( Bits, BitsSize );
end;
end;
As vezes, quando utilizados os médoto Draw e StretchDraw da propriedade Canvas do objeto TPrinter, a imagem não é impressa, para corrigir isto, utilize esta procedure, que passando como parâmetros a instância Printer.Canvas, Margem Esquerda, Margem Superior
procedure .DrawImage( Canvas : TCanvas; X, Y, Width, Height : Integer; ABitmap : TBitmap);
var
Header, Bits : Pointer;
HeaderSize : Integer;
BitsSize : Longint;
begin
GetDibSizes( ABitmap.Handle, HeaderSize, BitsSize );
Header := AllocMem( HeaderSize );
Bits := AllocMem( BitsSize);
try
GetDib( ABitmap.Handle, ABitmap.Palette, Header^, Bits^);
StretchDIBits(Canvas.Handle,X,Y,Width,Height,0,0,ABitmap.Width,ABitmap.Height,Bits,
TBitmapInfo(Header^),DIB_RGB_COLORS,SRCCOPY);
finally
FreeMem( Header, HeaderSize);
FreeMem( Bits, BitsSize );
end;
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)