打印问题求助

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

我将标签的left、top位置存入数据库,现在想按照设计时的位置通过小票打印机打印出来,
x := 元素left;
y := 元素top;
但通过Printer.Canvas.TextOut(x, y, '内容');打印后都重叠在一起了,应该是需要进行转换,有懂这块的哥们请指点下,没做个打印的,没头绪,谢谢了!
...全文
148 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
实际打印出来的效果如下:

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧