PDA

Ver la Versión Completa : Imprimir BMP


gallipi
14-04-2008, 12:35:31
Hola a todos,

Estoy intentando imprimir una imagen (BMP).
Inicialmente lo intente con el objeto TPrinterDialog, pero leí en el foro que solo debe usarse para asignar propiedades de impresion, pero no para imprimir.

Ahora estoy utilizando el API StretchDIBits, pero todavia no consigo imprimir nada. El error q me da es el siguiente: "Printer is not currently printing":confused::confused:


procedure TForm1.PrintBMP(bmp: TBitmap);
var
Info : PBitmapInfo;
InfoSize : DWORD;
Image : Pointer;
ImageSize : DWORD;
Bits : HBITMAP;
begin
Bits := bmp.Handle;
GetDIBSizes(Bits, InfoSize, ImageSize);
Info := AllocMem(InfoSize);
try
Image := AllocMem(ImageSize);
try
GetDIB(Bits, 0, Info^, Image^);

StretchDIBits(Printer.Canvas.Handle,
5, 30, Bmp.Width, bmp.Height,
0, 0, bmp.Width, bmp.Height,
Image, Info^, DIB_RGB_COLORS, SRCCOPY);

finally
FreeMem(Image, ImageSize);
end;
finally
FreeMem(Info, InfoSize);
end;
end;
Si alguien ve el error o tiene una forma mejor de imprimir una imagen q no dude en postearlo!:D

Gracias por adelantado.

seoane
14-04-2008, 14:38:55
Hola,

http://www.clubdelphi.com/foros/showpost.php?p=163092&postcount=2

gallipi
15-04-2008, 12:36:39
gracias, me viene genial!!