3

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

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

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

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

图片1

在任何地方打开或关闭“缩放”属性不会影响这一点。

就像搞乱 PixelsPerInch 一样。

我见过的人提供的唯一解决方案,实际上可以做一些事情,

并且可以在快速报告论坛中找到,在此链接中:

在 Windows7 下使用 UseDpiScaling 的 QrPreview

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

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

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

而报告保持在相同的范围内,如下图所示:

图片2

对此可以做些什么?

我需要报告以适合纸张的大小,

以与设计相同的方式显示和打印,无论 Windows 字体大小如何

4

1 回答 1

0

我找到了一个可行的解决方案!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;
于 2016-01-06T15:44:56.313 回答