用Printer对象进行票据打印时,在一台打印机上试验通过,在另外一台打印机上打印出来的票据中线和字符的位置混乱,两台打印机型号不同(一台EPSON,一台HP)。
究竟是怎么回事,如何解决?
究竟是怎么回事,如何解决?
解决方案 »
- fastreport在LPT口的打印机打印不了
- 急!在线等,delphi操作excel 如何在页面设置里面设“缩放比例”为70%
- 请问在局域网中使用QQ视频时,QQ是怎么通过代理服务器发送到局域网中的机器上的呢?
- 这个问题真的是不好搞呀,delphi高手请帮帮忙吧,谢谢!!
- 医院门诊收费中药品计价窗口的实现。
- 窗体打印的问题
- 用delphi完成一个程序后,哪一些文件可以删除,并且不影响程序运行?
- 用过DynamicSkinForm的进来,有问题相问。
- 这个Sql 语句怎么写啊,好像蛮难的!
- 一个百分之百初学者的问题~
- 关于使用 RegisterServiceProcess API 函数问题
- 调用这个函数,但总是出 定位RegisterServiceProcess 出错??
用打印机的点数做度量单位
如果想让打印程序在任何打印机上都能正常地打印,
你就必须改变你的度量单位。如果采用固定的度量,
不同分辨率的打印效果是不同的。
举例来讲:printerCanvasrectangle(0,0,360,720)
在360×360的佳能4200SP上能打出一个1英寸宽、2英寸高的矩形,
但在600×600的惠普6L上只能打出06英寸宽、12英寸高的矩形。
使用打印机的点数做为度量单位是一个明智的选择。
具体做法如下:VarPointX,PointY:integer;PointX:=GetDeviceCaps(printerHandle,LOGPIXELSX);
PointY:=GetDeviceCaps(printerHandle,LOGPIXELSX);
printerCanvasrectangle(0,0,PointX*1,PointY*2)
这样,无论你使用什么样的打印机,都能得到一个1英寸宽、2英寸高的矩形。
还能怎样解决?谢谢各位了