Buscar

Imprimindo um bitmap utilizando tprinter

Código

{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;

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Impressão
Adicionada dia: 20/06/03
Por: Felipe Monteiro
Visualizada: 3476 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009