unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Printers;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    Button2: TButton;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   Bmp: TBitmap;  //do wczytania obrazka
   R:TRect;
begin
  Bmp := TBitmap.Create;
  try
    Bmp.LoadFromFile('kolory_test.bmp');
    with Printer do
    begin
      BeginDoc;
      //za pomocą procedury Stretchdraw można powiększyć lub zmniejszyć drukowany obraz
      // przez dopasowanie do prostokąta R
      R:=Rect(10,100,400,500);
      Canvas.StretchDraw(R, Bmp);
      EndDoc;
    end;
  finally
    Bmp.Free;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var drukR, imageR: TRect;
begin
   Printer.BeginDoc;  //rozpoczęcie procesu drukowania
   Image1.Picture.LoadFromfile('tulipany.bmp');
   drukR:=Rect(10,100,900,700);  //prostokąt do drukowania
   imageR:=Rect(0,0, Image1.Width, Image1.Height);  //prostokąt zawierający obrazek
   //cmSrcCopy;
   Printer.Canvas.CopyRect(drukR, Image1.Canvas, ImageR);  //przekopiowanie obrazu
   // z ekranu do prostokątnego obszaru drukR
   Printer.EndDoc;  //wysłanie danych na drukarkę
end;


end.
