[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]
Use the following code. Remember to include the Printers unit in the uses
clause :
Lines followed by // ** are essential. The others are to get the
scaling correct otherwise you end up with extremely small images.
Printer resolutions are higher than your screen resolution.
--------------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
ScaleX, ScaleY: Integer;
R: TRect;
begin
Printer.BeginDoc; // **
with Printer do
try
ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
R := Rect(0, 0, Image1.Picture.Width * ScaleX,
Image1.Picture.Height * ScaleY);
Canvas.StretchDraw(R, Image1.Picture.Graphic); // **
finally
EndDoc; // **
end;
end;
[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]