Epson TM-U210PD 打印问题!!!(100分)

  • 主题发起人 chenjianzu
  • 开始时间
严重同意 lhc4000 朋友的说法。 程序可如下改
var F:TextFile;
begin
qrybillprint.Open();//此处可改为ADOQUERY数据源,用 SELECT TOP 来控制数据量,就好了。要么就需要延时
ASSIGNFILE(F,'LPT1');
REWRITE(F);
WRITELN(F,' 出 品 小 票');
Writeln(F,'——————————————————————');
Writeln(F,' 台号:'+qrybillprint.FieldByName('fldDeskID').AsString+' '+ FormatDateTime('yyyy-mm-dd hh:mm:ss',Now()));
Writeln(F,' 帐单号: '+ qrybillprint.FieldByName('fldBillCode').AsString);
Writeln(F,'——————————————————————');
while not qrybillprint.Eofdo
begin
Writeln(F,' '+qrybillprint.FieldByName('fldItemCode').AsString+' '+qrybillprint.FieldByName('fldItemName').AsString);
Writeln(F,' '+'数量: '+qrybillprint.FieldByName('fldQty').AsString);
Writeln(F,'——————————————————————');
qrybillprint.Next();
end;
qrybillprint.Close();
CloseFile(F);
end;
 
ASSIGNFILE(F,'LPT1');
WRITELN(F,
我不喜欢用这种模式。
我一般 先 生成 一个 文本 文件 //printdata.txt
然后 执行 copy c:/temp/printdata.txt prn //或 LPT1
这样 稳定 的 多 , 而且在打印机中也会出现任务。

 
to xuziling20:
我使用了 延时 :
1. for i:=1 to 100000do
空循环
2.sleep(1)
系统休眠
暂时解决了部分问题,但还是不彻底。
我的程序中不能使用 Select Top 语句 因为存在多种商品同时打印的情况。

to hfghfghfg:
这种方法不错,但我使用直接输出数据到 LPT1 的方法,就是没有安装打印机的驱动,
不会出现打印任务。 [:(]
还有就是打印机缺纸时,直接输入到 LPT1 的数据可能会出现无法打印而造成出品小票
丢失的情况。怎么解决呢?
 
我前年九月给客户上系统,用的机器是epson U300A,是串口的.也碰到这个512K大
小的问题,搞得差点吐血,人瘦了几斤,问遍本地的销售商的技术支持和epson的微
打部门,他们也解决不了,后来没法零售单只能来行打,即输入一条商品,马上打一行.
打结算单就得在中间暂停一下.后来给多个客户上了210pd,因为210pd是epson微打系
列是最便宜的,区别就是一个不能自动切纸.买的基本都是并口,都没有什么问题.
所以这时你看关键买的210pd是什么连接方式,串口就比较麻烦,并口问题不大.
我主要用了CreateFile,WriteFile等函数,如果串口的,那个过长捕捉怎么也没成功,
但如果并口的就一直使用的很好.每行即打也是使用这个函数.另外象一些指今你可
以到epson网站微打方面找指令文件下载.因为一般还要开钱箱,显示顾显等,都没什
么问题.这个函数在2000下不装驱动使用没问题,但要直接在98下用好象就有问题,另
外要开钱箱什么也应该装驱动,210pd对应的驱动程序一般对应的都是TM-U210A NO cut,
你在网上找一下就可以.
 
to wooder:
我用的 Epson TM-U210PD 打印机全部都是并口的打印机。
是不是用 CreateFile,WriteFile 这些 Windows API 函数直接将数据输出打端口呢?
 
to duancy:
没有收到邮件!
 
无论如何,你一次送过去的数据是绝对不能大于512字节, 不用SELECT TOP 就只能用延时了,这是硬件的限制,没办法; 延时的方法你可以搞精确一点,公式弄好了,打印起来是感觉不到延时的。 用什么API都必须要送数据到缓冲区的,没有用。只有从打印方法上控制和优化。 用SLEEP也会有其它问题,用别的延迟方法吧。
 
还有就是打印机缺纸时,直接输入到 LPT1 的数据可能会出现无法打印而造成出品小票
丢失的情况。怎么解决呢
个人用的方法:先用测试数据打印,正确的话再打印。
最好的方法: EPSON有U210系列的开发包,是C的,你自己转成DELPHI吧。
 
我已经发过多次了,收到就给分呀!
不要骗我。
 
此问题一直没有解决,我用了控制用户一次性输入的记录在三条以内的办法暂时解决了问题。[:(]
to duancy:
我确实没有收到你的邮件!
to 江南大米:
多谢你的帮助!
to all
谢谢!
 
多人接受答案了。
 
我已经传到了www.playicq.com
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
823
SUNSTONE的Delphi笔记
S
I
回复
0
查看
567
import
I
顶部