想要控制打印机进纸、退纸。
我用的源码如下。现在要在小票前打印logo图片
AFileToPrint 要打印文本路径。
procedure   GoPrintFile(AFileToPrint:   string);
var
    Port,   FileToPrint:   TextFile;
    ALine:   string;
    iIndex:Integer;
begin
try
    AssignFile(FileToPrint,  AFileToPrint);
    Reset(FileToprint);
    AssignFile(Port,'lpt1');
    Rewrite(Port);
    Writeln(Port,Chr(27)+Chr(106)+chr(250));//退纸
    while  not  Eof(FileToPrint)  do
    begin
        Readln(FileToPrint,   ALine);
        ALine:=TempStr+ALine;
        Writeln(Port,   ALine);
    end;
    Writeln(Port,Chr(27)+Chr(70)+chr(250));//进纸
finally
    closefile(Port) ;
    closefile(FileToPrint);
end;
end;
如果用Printer.Canvas.StretchDraw(Rect,Image1.Picture.Graphic);  
可很好打印图片及控制Logo大小,但加上打印机进纸、退纸命令无效。如果能用Epson控制指令打印图片更好!有人做过类似的吗?望高手指点。

解决方案 »

  1.   


    这样吧?POS58 下的小票机现在有很多本身机器不支持退纸,热敏就肯定不行。
     
     procedure  GoPrintFile(AFileToPrint:  string); 
    var 
        Port,  FileToPrint:  TextFile; 
        ALine:  string; 
        iIndex:Integer; 
    begin 
    try 
        AssignFile(FileToPrint,  AFileToPrint); 
        Reset(FileToprint); 
        AssignFile(Port,'lpt1'); 
        Rewrite(Port); 
        Writeln(Port,Chr(27)+Chr(106)+chr(250));//退纸 
        while  not  Eof(FileToPrint)  do 
        begin 
            Readln(FileToPrint,  ALine); 
            ALine:=TempStr+ALine; 
            Writeln(Port,  ALine); 
        end; 
        Writeln(Port,Chr(27)+Chr(70)+chr(250));//进纸 
    finally 
        closefile(Port) ; 
        closefile(FileToPrint); 
    end; 
    end; 这一段命令在你的机子上能不能进退纸??如果能的话,应该就是安装驱动的原因。
      

  2.   


    另外: Printer.Canvas.StretchDraw(Rect,Image1.Picture.Graphic);  这是在针式小票机下打票的多联纸的小票吗?效果怎么样?? 这是额外话。呵呵
      

  3.   

    1:能实现即打即停,控制打印机进纸,退纸
    2:打印图片及控制图片大小和位置.上述代码能实现即打即停,控制打印机进纸,退纸
    但不能打图片.
    我是用Epson 300K希望大家帮我看看怎样改.