向银行这种票据,有固定格式,并且都以印制好的票据,并且怎样使那些数据精确的打印在固定位置呢,打印程序和打印机有关系吗,请各位给各解决方案,怎么来实现

解决方案 »

  1.   

    http://www.softhouse.com.cn/news/show/2034.html
    Delphi中票据凭证的精确打印
      

  2.   

    用fastreport怎么做套打,能大概说一下吗,以前没做过,谢谢了
      

  3.   

    用fastreport怎么做套打,能大概说一下吗,以前没做过,谢谢了/////////////////////////////////////////////////纸张大小设为实际票据大小,调整好要打印文字位置,然后保存成模板文件即可,如果想做得再好一点那就好好利用fastreport里组件的Printable属性
      

  4.   

    做套打,还是fastreport比较方便,我做运输票据打印用的就是这个组件的:cb6+fastreport 2.53www.2ccc.com你可以找到这个版本的,安装delphi的相应版本,也不是很复杂
      

  5.   

    对于尺寸度量单位的确定,由于目前的打印机和显示器的分辨率有很多种,即单位长度上的像素个数不相同,因此相同像素大小的单元格在不同的设备上输出的实际大小会不一样。所以为了使预览和打印的大小一致,让报表在不同的设备上输出的大小一致,应该采用与设备无关的毫米作为报表尺寸的度量单位。但Delphi只能以像素为单位来作图,因此在作图前必须将毫米转换成像素,保存报表到数据库时再将像素转换成毫米。以下代码可实现像素和毫米的相互转换: 
    Var dc : HDC; //设备环境句柄
    dc := GetDC(0); //屏幕的环境句柄
    S_ScaleX:=GetDeviceCaps(dc, LOGPIXELSX)/ 25.4; //屏幕X方向上每毫米的像素个数;
    S_ScaleY:=GetDeviceCapsdc, LOGPIXELSY) / 25.4; //屏幕Y方向上每毫米的像素个数;
    dc:= Printer.Canvas.Handle; //打印机的环境句柄
    P_ScaleX:=GetDeviceCaps(dc, LOGPIXELSX)/ 25.4;//打印机X方向上每毫米的像素个数
    P_ScaleY:=GetDeviceCaps(dc, LOGPIXELSY)/25.4;//打印机Y方向上每毫米的像素个数[2]。