在我程序中,我需要控制程序的走纸,就是说,我打印的是小票,纸张在打印完一张小票后,打印停止,但是纸张不会继续走,而是纸张也停下,请问谁有这方面的经验,给点帮助~!

解决方案 »

  1.   

    方法很多, 如果你用Printer对象, 则用NewPage, 接着用EndDoc强行走纸.
             如果你用的是报表生成器, 如Qreport, 你必须定义好纸张的尺寸
      

  2.   

    有两种方法:
    第一种:直接输出到打印机的画布,见程序示例(头文件中加入Printers)。
      printer.BeginDoc;
      LeftBlank:=0.4;
      TopBlank:=0;
      Top:=TopBlank;
      InWidth:=7.4;
      OutHeight:=7;
      Rowheight1:=0.63;
      Rowheight2:=2.93;
      s:='塞外飞鹄';
      pointX:=Trunc(getdevicecaps(printer.handle,logpixelsx)/2.54);
      pointY:=Trunc(getdevicecaps(printer.handle,logpixelsy)/2.54);
      printer.Canvas.Font.name:='宋体';
      printer.PageHeight;
      printer.PageWidth;
      

  3.   

    for count:=0 to Counter.Value-1 do begin
        TopBlank:=Top+Count*OutHeight;
        with Printer.Canvas do begin
          Font.Size:=10;
          TextOut(trunc((LeftBlank+2.5)*PointX),trunc(TopBlank*PointY+(RowHeight1*PointY-TextHeight(s))/2),s);
        end;
      end;
      Printer.EndDoc;
    第二种:
    1、将打印机纸张设为自定义大小,报表设为自定义大小,以像素为单位。
    2、在打印时动态确定报表长度。
    FrmReport.Quickrep1.Page.Length=80;
    FrmReport.Print;