PDA

Ver la Versión Completa : Problema de escalado de funtes con QuickReport


darkerbyte
30-01-2018, 07:18:23
Hola amigos del foro

Me ha pasado algo extraño con Quickreport. La computadora de mi cliente donde instalé un sistema de gestión de inventarios tiene windows 10 pero lo que hizo fue cambiar el tamaño de los elementos de pantalla (en la configuración del windows) y los puso al 150%
Esto me esta generando un problema en Quickreport porque los elementos dentro del reporte aparecen mucho mas pequeños a como fueron diseñados. Y por ende también se imprimen más pequeños.
Pongo aquí un ejemplo:

Ver Imagen en Dropbox (https://www.dropbox.com/s/x5umbu405dy4je8/imprimirnota2.png?dl=0)

En todos los reportes me hace lo mismo. Cambié la configuración de windows al 125% y me los reduce un porcentaje menor. Solo cuando en la configuración de Windows están los elementos al 100% es cuando me lo muestra bien en el reporte.

Alguien sabe quizá de alguna propiedad que haya que configurar en Quickreport para que no me haga este escalado? Gracias a todos por su ayuda,

Versión Delphi: XE5
Versión QuickReport: 5.05

Garada
30-01-2018, 22:05:19
En delphi 2010 y QR 5.05.2 me va con la modificación del método CreateMetafilecanvas en la unidad QrPrntr:



procedure TQRPrinter.CreateMetafileCanvas;

function scaleToNativeDeskRes(pVal: Integer): Integer;
var
tTemp: HDC;
begin
tTemp := GetDC(0);
try
Result := Round((pVal * GetDeviceCaps(tTemp, VERTRES)) / GetDeviceCaps(tTemp, DESKTOPVERTRES));
finally
ReleaseDC(0, tTemp);
end;
end;

begin
FMetafile := TMetafile.Create;
//{$define HIRES}
{$ifdef HIRES}
// try a high res canvas
XFactor := GetDeviceCaps(aPrinter.Handle, LogPixelsX) / 254;
YFactor := GetDeviceCaps(aPrinter.Handle, LogPixelsY) / 254;
FMetafile.Width := XSize(PaperWidthValue);
FMetafile.Height := YSize(PaperLengthValue);
FCanvas := TMetafileCanvas.Create(FMetafile, aprinter.Handle);
FCanvas.Font.PixelsPerInch := GetDeviceCaps(aprinter.Handle, LOGPIXELSY);
{$else}
FMetafile.Width := scaleToNativeDeskRes(XSize(PaperWidthValue));
FMetafile.Height := scaleToNativeDeskRes(YSize(PaperLengthValue));
FCanvas := TMetafileCanvas.Create(FMetafile, 0);
// FCanvas.Font.PixelsPerInch := MetafileDPI;
//***
YFactor := Screen.PixelsPerInch / 254;
XFactor := YFactor;
SetGraphicsMode( FCanvas.handle, GM_ADVANCED);
{$endif}
//FHyperlinks := TList.Create;
end;

darkerbyte
31-01-2018, 18:10:33
Gracias Garada, me ha funcionado a la perfección
Dios te bendiga con un Core i9
Saludos