在DELPHI中怎样控制9针票据打印机打印? ( 积分: 100 )

  • 主题发起人 主题发起人 gdzscj
  • 开始时间 开始时间
G

gdzscj

Unregistered / Unconfirmed
GUEST, unregistred user!
我用以下程序来控制Epson TM300K打印
procedure TForm1.Button6Click(Sender: TObject);
var
prn: TextFile;
str: String;
begin
Assignfile(prn,'com1');
// or 'com1'
Rewrite(prn);
str := #27'a';
Writeln(prn, str);
//控制码 如:chr(27)+'a'
CloseFile(prn);
end;
但打印出来的是乱码.
如果我要打印一段内容如下的文字,该怎么做呢?
代码 名称 数量 金额
---------------------------------
000001 abcdef 1 10
请各位高手帮忙!最好给出源程序!
 
我用以下程序来控制Epson TM300K打印
procedure TForm1.Button6Click(Sender: TObject);
var
prn: TextFile;
str: String;
begin
Assignfile(prn,'com1');
// or 'com1'
Rewrite(prn);
str := #27'a';
Writeln(prn, str);
//控制码 如:chr(27)+'a'
CloseFile(prn);
end;
但打印出来的是乱码.
如果我要打印一段内容如下的文字,该怎么做呢?
代码 名称 数量 金额
---------------------------------
000001 abcdef 1 10
请各位高手帮忙!最好给出源程序!
 
没测试过:
var
F:TextFile;
str: String;
begin
....
Assignfile(f,'COM1');
rewrite(f);
{初始化打印机}
Write(f,chr(27)'@');//Chr(27)'@'即ESC@指令
Write(f,str);//STR中是要打印的栏目
Writeln(f);
Write(f,'-------------------------------');
Writeln(f);
Write(f,str);//STR中是要打印的内容
Closefile(f);
end;
 
to blyb:
Write(f,chr(27)'@');这句有问题,说缺少操作符,我改为Write(f,chr(27)+'@');后可以运行,但打印出来的仍是一串乱字符。为什么呢?
 
你是不是没给str变量赋值,你先测试下面的代码是否可以打印:
var
F:TEXTFILE;
begin
ASSIGNFILE(F,'COM1');
REWRITE(F);
WRITELN(F,chr(27) '@');
//初始化打印机
WRITELN(F,'打印测试,打印测试');
WRITELN(F,chr(12));
// 换页
CLOSEFILE(F);
end;
 
to: blyb
谢谢指教,但结果还是一样,打出来的都是乱字符,我已把打印机和com口的波特率设成4800,但还是这样!
 
后退
顶部