我在设计车票精确打印的时候遇到一个问题:为了方便操作人员好撕票,打印完内容后需要打印机多出几行的距离,下一次打印前又将多出的纸张回退到原始状态,不知DELPHI如何控制打印机的进纸和出纸距离。

解决方案 »

  1.   

    用的是什么打印机?有些打印机手册上带有控制命令符的,如我用的epson LQ-1600K打印机就有procedure TForm1.Button11Click(Sender: TObject);
    begin
      DirectPrint(#27+#106+#60);  //退纸
      LoadPrinterSetting;
      Printer.BeginDoc;
      printText(10,10,'精确定位打印开始');
      PrintTextA(50, 50, '测试,隶书,大小20,位置50:50', 20, '隶书');
      PrintTextA(100, 100, '测试,华文行楷,大小10,位置100:100', 10, '华文行楷');
      PrintText(16, 14, '3');
      PrintText(18, 14, '1');
      PrintText(20, 14, '1');
      PrintText(46, 14, '3');
      PrintText(56, 14, '0');
      PrintText(66, 14, '0');
      Printer.EndDoc;
      Cutpaper;
    end;
      

  2.   

    上面的朋友,能否说详细点,我用的epson LQ-300+
      

  3.   

    LQ-300+好象没有退纸命令的,你可以查一下说明书或是到EPSON网站查一下。1600K不但可以退纸还能自动切纸。具体的指令查下EPAON的说明书就知道了,1600K的说明书上的指令是最详细的。
    打印定位如果是对连续报表纸(就是纸的两边有定位小孔)最好用WriteLn写LP1来发送指令及输出要打出的字,那样非常准确,因为每页11孔是标准的,一页打多少行是可以通过设定行间距定死的,。