我现在用
printer.Canvas.TextRect(Rect,1,1,pristr)
要到最后调用printer.EndDoc才能把内容都打印出来.怎样实现超市那种刷一个条码就打印出相关内容呢?

解决方案 »

  1.   

    procedure posprt(billstr:string);
    var
        f,OutFile:textfile;
    begin
       OutFile:=ExtractFilepath(Application.ExeName)+'output.txt';
       AssignFile(F, OutFile);
       Rewrite(F);
       Writeln(F,'----------------------------------------');
       Writeln(F,'      名称      数量   单价   折扣  金额');
       Writeln(F,'----------------------------------------');  //销售数据准备
       CloseFile(f);
       PrintFile(Outfile); 
    end;
    procedure PrintFile(AFileToPrint: string);
    var
        Port, FileToPrint: TextFile;
        ALine: string;
    begin
         AssignFile(FileToPrint, AFileToPrint);
         Reset(FileToprint);
         AssignFile(Port, 'LPT1');
         Rewrite(Port);
         while not Eof(FileToPrint) do
         begin
           Readln(FileToPrint, ALine);
           Writeln(Port, ALine);
         end;
         CloseFile(Port);
         CloseFile(FileToPrint);
    end;