[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]