获取、显示当前打印机的分辨率
Windows下的打印分辨对打印程序有着至关重要的作用,如果你想知道打印机的分辨率,请在程序中加入一行:
ShowMessage(′水平分辨率′+inttostr(GetDeviceCaps(printer Handle,LOGPIXELSX))+chr(13)+′垂直分辨率:′+ inttostr(GetDeviceCaps(printer?Handle,LOGPIXELSY)));
用打印机的点数做度量单位
如果想让打印程序在任何打印机上都能正常地打印,你就必须改变你的度量单位。如果采用固定的度量,不同分辨率的打印效果是不同的。举例来讲:printer?Canvas?rectangle(0,0,360,720)在360×360的佳能4200SP上能打出一个1英寸宽、2英寸高的矩形,但在600×600的惠普6L上只能打出0.6英寸宽、1.2英寸高的矩形。使用打印机的点数做为度量单位是一个明智的选择。具体做法如下:
Var PointX,PointY:integer;
PointX:=GetDeviceCaps(printer?Handle,LOGPIXELSX);
PointY:=GetDeviceCaps(printer?Handle,LOGPIXELSX);
printer?Canvas?rectangle(0,0,PointX*1,PointY*2)
这样,无论你使用什么样的打印机,都能得到一个1英寸宽、2英寸高的矩形。
=========