You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi升级至10.2 Tokyo后TeeChart打印标签缩放异常求助

解决Delphi 10.2 Tokyo升级后TeeChart PrintPartial打印标签缩放异常问题

我之前帮同事排查过几乎一模一样的问题——从Delphi 2009升级到10.2 Tokyo后,用TPrinter配合TeeChart 9.x的PrintPartial打印多图表时,屏幕显示正常但打印标签被压缩/缩放异常。核心原因是Delphi跨版本引入的高DPI打印适配,和旧版TeeChart的打印逻辑不兼容,下面是几个经过验证的解决方案:

方案1:强制对齐打印画布与屏幕的DPI

Delphi 10.2的TPrinter画布默认会适配系统的高DPI设置,但TeeChart 9.x的PrintPartial还是沿用旧版本的固定DPI计算标签尺寸,导致字体缩放错位。可以在打印前手动同步DPI:

var
  PrinterCanvas: TCanvas;
  ScreenDPI: Integer;
begin
  Printer.BeginDoc;
  try
    PrinterCanvas := Printer.Canvas;
    // 获取当前屏幕的DPI值
    ScreenDPI := Screen.PixelsPerInch;
    // 让打印画布的字体DPI与屏幕一致
    PrinterCanvas.Font.PixelsPerInch := ScreenDPI;
    // 同时给TeeChart设置对应的缩放比例
    Chart1.PrintOptions.ScalePercent := Round((PrinterCanvas.PixelsPerInch / ScreenDPI) * 100);
    
    // 执行PrintPartial打印(这里替换成你实际的打印区域参数)
    Chart1.PrintPartial(Rect(50, 50, 450, 350), PrinterCanvas);
    Chart2.PrintPartial(Rect(50, 400, 450, 700), PrinterCanvas);
  finally
    Printer.EndDoc;
  end;
end;

方案2:升级TeeChart到兼容Delphi 10.2的版本

TeeChart 9.0.1.0是2010年左右的版本,完全没有适配Delphi XE之后的打印上下文和高DPI特性。升级到TeeChart 2017或更高版本(官方明确支持Delphi 10.2 Tokyo),不仅能直接解决这个打印标签问题,还能修复其他潜在的兼容性bug,比如图表渲染模糊、交互卡顿等。

方案3:用ExportToCanvas替代PrintPartial

如果暂时无法升级TeeChart,可以绕过PrintPartial的内部逻辑,直接把图表导出到打印画布上,手动控制绘制区域:

var
  PrintArea: TRect;
begin
  Printer.BeginDoc;
  try
    // 第一个图表的打印区域
    PrintArea := Rect(50, 50, 450, 350);
    Chart1.ExportToCanvas(Printer.Canvas, PrintArea);
    
    // 第二个图表的打印区域
    PrintArea := Rect(50, 400, 450, 700);
    Chart2.ExportToCanvas(Printer.Canvas, PrintArea);
  finally
    Printer.EndDoc;
  end;
end;

这种方式相当于直接在打印画布上绘制图表,完全由VCL的画布上下文处理缩放,能避免TeeChart旧版打印逻辑的坑。

方案4:检查标签字体设置

有时候标签使用了“屏幕字体”(非TrueType字体),打印时会因为系统字体映射问题导致缩放异常。打开TeeChart编辑器,找到标签的字体设置:

  • 选择TrueType字体(比如Arial、Times New Roman)
  • 取消勾选“屏幕字体”选项(如果有的话)

我接触的几个类似案例里,方案1或3能快速解决问题,方案2是长期根治的最优选择。如果还是有问题,可以检查Printer.PageSettings里的缩放比例是否被系统默认修改了。

内容的提问来源于stack exchange,提问作者F. Zeller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:42:47