EPSON TM_210票据打印机的控制(#27+''),为何他不理我?(200分)

  • 主题发起人 主题发起人 HubHub
  • 开始时间 开始时间
H

HubHub

Unregistered / Unconfirmed
GUEST, unregistred user!
我用EPSON TM_210票据打印机的控制命令(#27+''),无论如何打印机都不受控制,
我可以正常发送字符串到打印机.
 
为什么都不讲?有才不外露?分太少?我可只有这么多分了
 
procedure writePrn(port,str:stirng);
port:为打印口 str:为控制码
var prn: TextFile;
begin

Assignfile(prn,port);
// 如: 'LPT1'
Rewrite(prn);
Writeln(prn, str);
//控制码 如:#27+'@'
CloseFile(prn);
end;

 
不知道为什么就是不得到预期目的。还有什么问题吗?
请各位大虾多多帮忙!!!!!!
 
应该没有问题吧。你在DOS下试试。另外看看它的指令说明,有没有需要特殊
处理的,如复位后需要激活一些功能。
另外要注意打印机的接收速度,有些古老的打印机由于工作频率低,比PC计算
机要慢得多,可能需要延时。如:
Writeln(prn, #27);
//控制码 复位
Sleep(10);
//延时10ms
Writeln(prn, '@');
Sleep(10);
//延时10ms
....
还有要弄清楚打印机接收指令和数据是用电平中断还是脉冲中断。
 
呵呵,不能用writeln,要用write。
 
> 弄清楚打印机接收指令和数据是用电平中断还是脉冲中断

然后在PC的CMOS中选择使用哪种LPT,是ECP之类的,我不记得了,你去找书看看吧。
现在的CMOS都有类似配置,如果类型不对,那是肯定不行的。
不过你既然能发送字符打印,好像以上问题都不存在:( 白说了。

你还是看说明书、找EPSON的技术支持吧,我不行了,我想哭。
 
阿蛮 说的很有道理。
 
我在前几个月写过一个这样的程序,就因为不想打#13,而用writeln,结果就是不行,
弄了快半个月,就是没想到这这个原因,我都快疯了,后来把爱普生的技术员从北京请
到西安,可就在技术员在来的路上我就把writeln换成write,结果就成了,可怜的北京
技术员到西安后只能是吃和喝,还好不是我的钱。呵呵
 
多谢二位的帮助,我又试一下,结果是:

我试着用过write
打印机好象什么都没收到。
用write 发字串时,要再发一个才打印
如:botton1: write(prn,'kkkkk');
botton2: write(prn,#27'@');
botton3: write(prn,#27+'e'+'6');
//向后退6行

我按botton1,没动静,
我按botton2,输出kkkkk,
按n次botton2 botton3 都没动静
 
呵呵,请把你的打印机驱动程序下掉。
#27'@'是初始化打印机。
我的资料上没有#27+'e'的,所以不知道。(我的是爱普生88II,只有前进,没有后退)
 
要用Escape通过Passthrough的方式传送到Printer才行,我的MSDN有问题
你自己查一下,我记得有个例子,用MSDN的搜索Passthrough,查到how to ...
 
接受答案了.
 
后退
顶部