求助?关于票据打印? 各位我现在在写一个打印收据的东西,就像电信或银行里的的收据打印,要求打印出去的每一个字都能够准确的落在原来的表格之内(打印的纸张上已经有现成的表格,只要在规定的地方在打上字就可以了)怎么做那?有些人好像是先把票据扫描,然后再确定打印位置,但我不知怎么用?谁能告诉我呢?不胜感激! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己定义纸张,扫描一张发票(对.bmp图片识别),做为底片,做好确定位置,然后一点一点打印调试。我试过,一点麻烦! 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; 自定义纸张扫描票据,最好是得到矢量图档然后最好是用QuickRep.Picture把图版load 进来。好了把你要贴的东西放到报表上就行了。这时已经有表格了(就是扫描的图) 从数据库导出XML文件 delphi idhttp或webbrowser如何伪装来路? 读取stream方法中,integer类型变量初值的诡异问题 一道数学题,请看:如何得到两个点连成的直线的所有点? 工程文件为什么打不开? 在DELPHI中如何调用SQL SERVER的存储函数? 干麻要叫程序员呢?程序员?打字员?接线员?XXX员 不好听! 在ADOQUERY中增加一个字段. Delphi修改XML 如何在TStringGrid中添加或删除一行? 各位数据API和数据库高手请进...... 送分,求解代码
我试过,一点麻烦!
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;
扫描票据,最好是得到矢量图档
然后最好是用QuickRep.Picture把图版load 进来。
好了
把你要贴的东西放到报表上就行了。这时已经有表格了(就是扫描的图)