Ver Mensaje Individual
  #2  
Antiguo 19-10-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
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;

// Ejemplo de uso
var
  Imagen: TJpegImage;
begin
  Imagen:= TJPEGImage.Create;
  try
    Imagen.LoadFromFile('d:\1.jpg');
    Imprimir(Imagen);
  finally
    Imagen.Free;
  end;
end;
Responder Con Cita