gpt4 book ai didi

delphi - Windows 字体大小设置为 : (125%, 150%) 或 dpi 大于 96 (120,144) 时,快速报告显示或打印报告不正确

转载 作者:行者123 更新时间:2023-12-01 16:51:37 35 4
gpt4 key购买 nike

这个问题众所周知,但我还没有找到解决方案。

每当 Windows 中的 fon-size 设置为高于正常大小时

报表相对于纸张尺寸缩小,

并锚定到页面的左上角,如下所示:

Image1

在任何地方打开或关闭“缩放”属性都不会影响此效果。

就像搞乱 PixelsPerInch 一样。

我所见过的唯一解决方案确实有所作为,

可以在 Quickreport 论坛中找到此链接:

QrPreview with UseDpiScaling under Windows7 ,

涉及创建一个新的项目 list 资源,并向其中添加以下行:

<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>
</assembly>

但是,这样做的唯一作用是使报告中的文本变大,

同时报告保持在相同的边界内,如下所示:

Image2

对此可以采取什么措施?

我需要报告适合纸张尺寸,

无论 Windows 字体大小如何,都按照设计的方式显示和打印

最佳答案

我找到了一个可行的解决方案! QRPrntr.pas 补丁:

  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.Width := scaleToNativeDeskRes(XSize(PaperWidthValue));
FMetafile.Height := scaleToNativeDeskRes(YSize(PaperLengthValue));
FCanvas := TMetafileCanvas.Create(FMetafile, 0);
FCanvas.Font.PixelsPerInch := MetafileDPI;
...
end;

关于delphi - Windows 字体大小设置为 : (125%, 150%) 或 dpi 大于 96 (120,144) 时,快速报告显示或打印报告不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25924614/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com