各位我现在在写一个打印收据的东西,就像电信或银行里的的收据打印,要求打印出去的每一个字都能够准确的落在原来的表格之内(打印的纸张上已经有现成的表格,只要在规定的地方在打上字就可以了)
怎么做那?有些人好像是先把票据扫描,然后再确定打印位置,但我不知怎么用?谁能告诉我呢?不胜感激!

解决方案 »

  1.   

    自己定义纸张,扫描一张发票(对.bmp图片识别),做为底片,做好确定位置,然后一点一点打印调试。
    我试过,一点麻烦!
      

  2.   

    uses printers  Try    //图形打印
       with printer do begin
         BeginDoc;     //开始一个打印任务
           Canvas.Font.Size :=12;  //设置打印的字体
           Canvas.TextOut (150,55,r_SysInfo.StationName);     //在150,50位置打出收费站名称
           Canvas.TextOut (170,70,_getrmb(strtoint(vartostr(CarPrice))));
           Canvas.TextOut (330,70,vartostr(CarPrice)+'元');
           Canvas.TextOut (120,85,inttostr(r_TradeInfo.WayNo));
           Canvas.TextOut (190,85,formatfloat('000000',r_Userinfo.No));
           Canvas.TextOut (300,85,copy(datetimetostr(now()),3,2)+formatfloat('00000000',r_UserInfo.CurrentBillNo-1));
           Canvas.TextOut (120,100,datetimetostr(date()));
           Canvas.TextOut (300,100,timetostr(time) );
       end;
     Finally
       printer.EndDoc;  //结束一个打印任务
     end;
      

  3.   

    自定义纸张
    扫描票据,最好是得到矢量图档
    然后最好是用QuickRep.Picture把图版load 进来。
    好了
    把你要贴的东西放到报表上就行了。这时已经有表格了(就是扫描的图)