PDA

Ver la Versión Completa : Ajustar el tamaño de la imagen para imprimir


ingel
19-10-2006, 13:40:04
Hola a todos , se que es un tema bastante tratado .. pero no logro dar con la solucion . Estoy usando Delphi5 y QReport. Mi problema es que las imagenes guardadas en la DB (sql) son muy 'grandes' y al imprimirlas me imprime solo una parte .. he tratado de recurrir al Strech pero las 'deforma totalmente' y quedan ilegibles ... (creo que en Delphi 7 este problema ya esta solucionado , pero lamentablemente tengo que seguir con el 5) ... tendria que imprimir en tamaño A4 sea cual sea el tamaño y dimensiones originales de las imagenes (escaneadas)
Saludos y gracias

seoane
19-10-2006, 14:53:01
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.


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;

ingel
19-10-2006, 15:38:19
lo pruebo y te comento

Casimiro Notevi
07-03-2007, 21:26:25
Ya hace tiempo que se escribió este hilo, pero hoy me ha hecho falta "urgentemente" justo lo que hace el código que había escrito seoane.
El resultado ha sido perfecto como es costumbre en él :)