影响打印机实际打印位置的因素:打印机画布分辨率、打印机画布字体指定。
若想同样的打印信息,对任何打印机都适用布局不会发生变化,设置打印机位置时需要考虑。
// lpx,lpy,lxin,lyin : integer ;
// ll ,lt : integer ;
//lFont : string ;lFontSize :integer ;
BeginDoc ;
Canvas.Font.Name := lFont ; //设定字体名字
Canvas.Font.Size := lFontSize ;//设定字体大小
lpx := GetDeviceCaps(Canvas.Handle,LOGPIXELSX) ;
lpy := GetDeviceCaps(Canvas.Handle,LOGPIXELSY) ;
lxin := Round(lpx / 2.54) ; //表示水平向每CM的像素个数
lyin := Round(lpy / 2.54) ; //表示竖直向每CM的像素个数
ll := round( 1 * lxin); //表示距页面左侧1cm
lt := round( 2 * lyin); //表示距页面顶上2cm
//打印文字
Canvas.TextOut(ll,lt ,'测试打印内容'); // 在页面左侧1cm,上2cm的位置开始打印内容
//直线绘制
ll := round( 1 * lxin); //表示距页面左侧1cm
lt := round( 3 * lyin); //表示距页面顶上3cm
Canvas.moveto(ll ,lt) ;
ll := round( 4 * lxin); //表示距页面左侧4cm
lt := round( 3 * lyin); //表示距页面顶上3cm
Canvas.LineTo(ll ,lt) ;
//图片打印 打印成指定大小 2cm*2cm
lrect.Left := round(1 * lxin) ;
lrect.Top := round(1* lyin) ;
lrect.Right := lrect.Left + round( 2 * lxin ) ;
lrect.Bottom := lrect.Top + round( 2 * lyin ) ;
Canvas.StretchDraw(lrect,Gpic.Picture.Graphic);
EndDoc ;