【发布时间】:2014-10-01 07:32:44
【问题描述】:
我正在使用 RAD Studio XE6,并且我有一个简单的火猴表单,用于打印图像。我认为如果我设法创建一个预览功能来在打印之前显示最终图像,那将是一个好主意。为此,我尝试使用 TImage 组件,而不是将数据发送到打印机画布,而是使用下面的代码将其发送到图像画布。
ImageViewer1.Canvas.Font.Size := 15;
ImageViewer1.Canvas.Font.Family := 'Arial';
ImageViewer1.Canvas.Font.Style := [TFontStyle.fsbold];
ImageViewer1.Canvas.Fill.Color := claBlack;
ImageViewer1.Canvas.Fill.Kind := TBrushKind.Solid;
s := 'Test Print';
l := Round((ImageViewer1.Width - ImageViewer1.Canvas.TextWidth(s)) / 99);
t := Round(ImageViewer1.Canvas.TextHeight(s)*3/100);
r := l + Round(ImageViewer1.Canvas.TextWidth(s));
b := t + Round(ImageViewer1.Canvas.TextHeight(s));
ImageViewer1.Canvas.FillText(TRectF.Create(l, t, r, b), s, false, 1,
[TFillTextFlag.RightToLeft], TTextAlign.Leading, TTextAlign.Leading);
问题是我的 TImage 组件中最终没有显示任何内容。我是不是做错了什么?
【问题讨论】:
-
您知道您不是在这里创建打印预览,对吗?您正在为打印数据创建数据预览。 打印预览 包含从打印机收集的打印信息,例如 DPI、边距、页面大小、方向等。(另外,您的问题可能是您在外部创建 数据预览 ImageViewer。尝试使用 (0, 0) 作为画布的原点。)
标签: delphi