Witam ponownie ;)

Otóż pisząc mój programik do fakturek i przelewów spotkałem się z pewnym problemem. Otóż chcę wydrukować np. 2 blankiety, zapisane w bitmapie na jednej stronie. Póki co opanowałem drukowanie po jednej bitmapce na stronę, niezależnie od jej rozmiarów :/... Mój problem jak zwykle jest zapewne błachy, jednak nie mogę wpaść na to, jak sobie z tym poradzić :/. Otóż tak wygląda moja procedura skalowania bitmapki:

 procedure PrintImage(Image: TImage; ZoomPercent: Integer);
//jeśli ZoomPercent = 100, obraz zostanie wydrukowany na całej powierzchni strony

var
 relHeight, relWidth: integer;
 JPEG : TJPEGImage;
begin

 Screen.Cursor := crHourglass; //ustawienie kursora na klepsydrę

 Printer.BeginDoc;
 with Image.Picture.Bitmap do
 begin 
  if ((Width / Height) > (Printer.PageWidth / Printer.PageHeight)) then 
  begin 
   // rozciągniecie obrazka do szerokości strony drukarki

   relWidth := Printer.PageWidth; 
   relHeight := MulDiv(Height, Printer.PageWidth, Width); 
  end 
  else 
  begin 
   // rozciagniecie obrazka do wysokosci strony drukarki 

   relWidth := MulDiv(Width, Printer.PageHeight, Height); 
   relHeight := Printer.PageHeight; 
  end; 
  relWidth := Round(relWidth * ZoomPercent / 100); 
  relHeight := Round(relHeight * ZoomPercent / 100);
  DrawImage(Printer.Canvas, Rect(0, 0, relWidth, relHeight), Image.Picture.Bitmap);
 end;
 Printer.EndDoc;
 Screen.cursor := crDefault;
end;

A to już zdarzenie po naciśnięciu guziczka "Drukuj":

procedure TForm1.BitBtn1Click(Sender: TObject);
var
BMP : TBitmap;
begin
 Screen.cursor := crHourGlass;
image.Picture.LoadFromFile('gfx/blank_kopia.bmp');
PrintImage(Image, 50);

end;

Nie śmiejcie się ;)... ja po prostu tak mam, że czasem zatrzymują mnie sprawy banalne, a np. z trudniejszymi zagadnieniami czasami daję sobie radę ;) Jeśli ktoś może mi pomóc uporać się z tym problemem możliwie szybko - będę b.wdzięczny ;).