打印问题求助

beiguofengguang 2014-01-18 08:54:41
我在设置程序的窗体中设置好打印模板,如下:

我将标签的left、top位置存入数据库,现在想按照设计时的位置通过小票打印机打印出来,
x := 元素left;
y := 元素top;
但通过Printer.Canvas.TextOut(x, y, '内容');打印后都重叠在一起了,应该是需要进行转换,有懂这块的哥们请指点下,没做个打印的,没头绪,谢谢了!
...全文
109 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
beiguofengguang 2014-01-21
大体上解决了,关键是我保存时保存的是像素left、top,打印时textout使用的是点,需要做下转化。
回复
linghengmao 2014-01-19
字体不一样是可以根据字体的高度来设定行的。 如果一行的字体大小不一样,就得取最大那个字的高度,再进行计算。
回复
sololie 2014-01-19
Printer.Canvas.TextWdith、Printer.Canvas.TextHeight 是canvas输出字体的字高和字宽 Printer.Canvas.Font 也可以得到字体信息 Printer.Canvas.TextExtent 也可以计算出一个字符串的size信息 总之自己统计一下吧
回复
beiguofengguang 2014-01-18
我这个是可以让用户自己挪动打印元素位置的,一行可能有另个元素,但字体设置的不一样,不好分行
回复
sololie 2014-01-18
没玩过打印机编程,随便问问,你的 y 算上行高没有?
回复
beiguofengguang 2014-01-18
实际打印出来的效果如下:
回复
发动态
发帖子
Windows SDK/API
创建于2007-08-02

1145

社区成员

Delphi Windows SDK/API
申请成为版主
社区公告
暂无公告