Bueno, no se si te servirá pero aquí te dejo un método para imprimir una imagen ajustándola al tamaño del papel, sin deformarla.
Código Delphi
[-]
uses Printers, Jpeg;
procedure Imprimir(Imagen: TGraphic);
var
R: TRect;
Ancho, Alto: Integer;
begin
with Printer, Printer.Canvas do
begin
Printer.Orientation := poPortrait;
BeginDoc;
try
Ancho:= ClipRect.Right - ClipRect.Left;
Alto:= ClipRect.Bottom - ClipRect.Top;
R:= Rect(0, 0, Ancho, Alto);
if (Ancho/Imagen.Width) < (Alto/Imagen.Height) then
R.Bottom:= Trunc((Ancho*Imagen.Height)/Imagen.Width)
else
R.Right:= Trunc((Imagen.Width*Alto)/Imagen.Height);
StretchDraw(R,Imagen);
EndDoc;
except
Abort;
end;
end;
end;
var
Imagen: TJpegImage;
begin
Imagen:= TJPEGImage.Create;
try
Imagen.LoadFromFile('d:\1.jpg');
Imprimir(Imagen);
finally
Imagen.Free;
end;
end;