我用quickreport 设计了纸张大小  可是老走纸
如何控制打印机实现发票连续套打
请给出具体代码

解决方案 »

  1.   

    不是很熟悉,帮你up
    ------------------------------------
    体验速度,体验CSDN论坛助手:http://community.csdn.net/Expert/TopicView.asp?id=4700683
      

  2.   

    打发票你还用什么QR,用PRINTER对象要比QR效果好!
      

  3.   

    QuickReport不太熟,用FastReport做过,只要设好纸张大小是一张票据那么大就行了,当然连续打主要是高度,会根据设定的高度自动走纸的
      

  4.   

    user printersvar
         col,i,bh:integer;
         je,yje:double;
         Name :string;
    begin
                           //打印
                col:=0;
                je:=0;
                yje:=0;
                Printer.BeginDoc();
                Printer.Canvas.Font.Name:='黑体';
                Printer.Canvas.Font.Name:='system';
                Printer.Canvas.Font.Style:=[fsBold];
                Printer.Canvas.Font.Size:=14;
                Printer.Canvas.Font.PixelsPerInch:=GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSY);
                Printer.Canvas.TextOut(550,1,trim(Name)+'商品进货清单');
                Printer.Canvas.Font.Size:=10;
                Printer.Canvas.Font.Name:='宋体';
                Printer.Canvas.Font.PixelsPerInch:=GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSY);
                Printer.Canvas.TextOut(2,50,'供货单位:'+trim(adoquery1.fieldbyname('gysmc').asstring)+'   进货日期:'+datetostr(adoquery1.fieldbyname('rq').asdatetime)+'   单据号码:'+trim(adoquery1.fieldbyname('djh').asstring)+'  收货单位:'+trim(dp));
                Printer.Canvas.TextOut(2,80,'----------------------------------------------------------------------------------------------------------------');
                Printer.Canvas.TextOut(2,100,'   商品品牌  商品类型         商品名称                 数量    单价     金额       备注');
                Printer.Canvas.TextOut(2,130,'----------------------------------------------------------------------------------------------------------------');
                Printer.Canvas.Font.Size:=10;
                Printer.Canvas.Font.Name:='宋体';
                i:=0;
                adoquery1.First;
                while not adoquery1.Eof do
                begin
                           Printer.Canvas.TextOut(35,160+col,trim(adoquery1.fieldbyname('pp').asstring));
                           Printer.Canvas.TextOut(190,160+col,trim(adoquery1.fieldbyname('lx').asstring));
                           Printer.Canvas.TextOut(370,160+col,trim(adoquery1.fieldbyname('mc').asstring));
                           Printer.Canvas.TextOut(710,160+col,trim(adoquery1.fieldbyname('sl').asstring));
                           Printer.Canvas.TextOut(810,160+col,trim(adoquery1.fieldbyname('jj').asstring));
                           Printer.Canvas.TextOut(910,160+col,trim(adoquery1.fieldbyname('jhje').asstring));
                           col:=col+30;
                           i:=i+1;
                           je:=je+adoquery1.fieldbyname('jhje').asfloat;
                           yje:=yje+adoquery1.fieldbyname('jhje').asfloat;
                           adoquery1.Next;
                           if i=8 then
                           begin
                                       if not adoquery1.Eof then
                                       begin
                                                 Printer.Canvas.Font.Name:='宋体';
                                                 Printer.Canvas.Font.Size:=10;
                                                 Printer.Canvas.TextOut(5,420,'----------------------------------------------------------------------------------------------------------');
                                                 Printer.Canvas.TextOut(10,450,'每页金额合计:                                                     '+formatfloat('0.00',yje));
                                                 Printer.Canvas.TextOut(10,480,'1.此单仅作结款凭证,不作其它用途 2.以上价格均为:口含税价 口不含税价');
                                                 Printer.Canvas.TextOut(10,510,'3.结款方式:口转帐    口现金     4.此单盖章有效,否则不予结款。');
                                                 Printer.Canvas.TextOut(10,540,'制单:'+trim(adoquery1.fieldbyname('num').asstring)+' 业务:'+trim(adoquery1.fieldbyname('cgr').asstring)+'    收货人:              仓管:');                                             Printer.NewPage;
                                                 col:=0;
                                                 Printer.Canvas.Font.Name:='黑体';
                                                 Printer.Canvas.Font.Name:='system';
                                                 Printer.Canvas.Font.Style:=[fsBold];
                                                 Printer.Canvas.Font.Size:=14;
                                                 Printer.Canvas.Font.PixelsPerInch:=GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSY);
                                                 Printer.Canvas.TextOut(550,1,trim(Name)+'商品进货清单');                                             Printer.Canvas.Font.Size:=10;
                                                 Printer.Canvas.Font.Name:='宋体';
                                                 Printer.Canvas.Font.PixelsPerInch:=GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSY);
                                                 Printer.Canvas.TextOut(2,50,'供货单位:'+trim(adoquery1.fieldbyname('gysmc').asstring)+'   进货日期:'+datetostr(date)+'   单据号码:'+trim(adoquery1.fieldbyname('djh').asstring)+'  收货单位:'+trim(dp));
                                                 Printer.Canvas.TextOut(2,80,'----------------------------------------------------------------------------------------------------------------');
                                                 Printer.Canvas.TextOut(2,100,'   商品品牌  商品类型         商品名称                 数量    单价     金额       备注');
                                                 Printer.Canvas.TextOut(2,130,'----------------------------------------------------------------------------------------------------------------');
                                                 yje:=0;
                                                 i:=0;
                                       end;
                           end;
                end;
                Printer.Canvas.Font.Name:='宋体';
                Printer.Canvas.Font.Size:=10;
                Printer.Canvas.TextOut(5,420,'----------------------------------------------------------------------------------------------------------');
                Printer.Canvas.TextOut(10,450,'总金额合计:                                                            '+formatfloat('0.00',je));
                Printer.Canvas.TextOut(10,480,'1.此单仅作结款凭证,不作其它用途 2.以上价格均为:口含税价 口不含税价');
                Printer.Canvas.TextOut(10,510,'3.结款方式:口转帐    口现金     4.此单盖章有效,否则不予结款。');
                Printer.Canvas.TextOut(10,540,'制单:'+trim(adoquery1.fieldbyname('num').asstring)+' 业务:'+trim(adoquery1.fieldbyname('cgr').asstring)+'   收货人:              仓管:');
                Printer.EndDoc();end;爱心相助!
      

  5.   

    用PRINTER对象,不要用报表!
    或者直接向端口写打印机指令!
      

  6.   

    把打印机换成平推针式的,推荐epson 630K。可以一次打7联。