我们的应用程序中有许多图表,我们允许用户在Word中生成报告。我们通过在 TChart 上调用 CopyToClipboardBitmap ,然后将其粘贴到相应位置的Word文档中来完成此操作。
但是,我们遇到的问题是位图的分辨率是基于屏幕上当前渲染的大小。因此,低分辨率桌面上的人,或者碰巧没有运行应用程序最大化的人最终会在生成的Word文档中使用相当低分辨率的图像。
我们希望能够在执行 CopyToClipboardBitmap 之前设置分辨率。反正有吗?
注意,我们尝试使用 CopyToClipboardMetafile (同时使用true和false作为参数),并且似乎有类似的问题,因为图像的大小基于屏幕上的渲染大小。这导致在文档内变大时轴,标签等的文本过大。所以我们又想要能够指定 CopyToClipboardBitmap / CopyToClipboardMetafile / SaveToBitmapFile / SaveToMetafile 的渲染大小strong> / SaveToMetafileEnh 基于。
答案 0 :(得分:2)
您可以将TRect设置为CopyToClipboardBitmap方法的参数。即:
procedure TForm1.Button1Click(Sender: TObject);
var tmpRect: TRect;
tmpWidth, tmpHeight: Integer;
begin
tmpRect:=Chart1.GetRectangle;
tmpWidth:=tmpRect.Right-tmpRect.Left;
tmpHeight:=tmpRect.Bottom-tmpRect.Top;
tmpRect.Right:=tmpRect.Right+tmpWidth;
tmpRect.Bottom:=tmpRect.Bottom+tmpHeight;
Chart1.CopyToClipboardBitmap(tmpRect);
end;
我刚刚在Steema Software支持论坛here中回答了同样的问题。