我用delphi6+fastreport做得打印,打印超市小票,使用的是中崎打印机,但是如果购买的物品太多的话,打印预览的时候就分页了,点击“打印”后,小票的第二页不打印,请问怎么解决呀!最好能连续打印起来(在一页打印完)
听说小票的打印机最大长度时30mm 不知道是否正确 

解决方案 »

  1.   

    为什么不用文本打印呢?
    直接写入到txt文本,在打印,也好用 啊
      

  2.   

    用FR打印,估计效果是最差的,主要体现在:速度,字体清析度。
    用文本吧,速度很快,这种小票,不会有很复杂的界面的,把内容一行行地打出来,做个汇总,就可以了。最好还是用指令吧,其实和文本差不多的。
    速度快,并且,可以设置字体大小(绝对清楚,比FR要强很多),可以设置走纸,切纸,等下面代码,是EPSON 小票打印里的,很简单  try
        AssignFile(F,'LPT1');
        Rewrite(F);    //打印标题
        Writeln(F,chr($1b) + chr($40));          //[初始化打印机
        Writeln(F,Chr($1b) + Chr($72) + '1');    //设置红色打印
        Writeln(F,chr($1b) + chr($61) + '1');    //居中打印
        Writeln(F,chr($1c) + chr($21) + '4');    //倍宽打印
       Writeln(F,'点单打印');
        Writeln(F,chr($1b) + chr($61) + '0');  //取消居中打印
        Writeln(F, '点单号:' + fGroupID);    //显示帐单号,房号
        Writeln(F, '房   号:' + RmName);    Writeln(F,chr($1c) + chr($21) + '0');
        Writeln(F,'打印时间:' + datetimetostr(Now));
        Writeln(F,'----------------------------------------');
        Writeln(F,'  商品名称      数量  单价  单位  合计');
        Writeln(F,'----------------------------------------');    //打印尾标
        Writeln(F,'----------------------------------------');
        writeln(F,'                          合计:' + CurrToStr(fTotalSum) + '元');    //打印完毕,切纸
        Writeln(F,chr($1d)+ 'V' + chr(66) + chr(0));  //切纸
      finally
        closefile(F);
      end;
      

  3.   

    3楼is right!如果不是这种思路,还会造成纸张打印浪费,用户肯定不满意,麻烦还更大
      

  4.   

    一楼正解,楼主放心,fastreport绝对是delphi第一采择的报表,方便\功能强大\漂亮,我用了N种报表但都没有fastreport好用