2016-01-17 64 views
0

我正在生成ZPL命令字符串,并且打印机(ZT410)不打印所有发送的标签。我简单地遍历以下代码并将字符串发送到打印机(通过端口9100上的IP地址)。每个循环都包含一组唯一的数据,其中row ['item_desc'],row ['our_part_number']和部件号每次迭代都会更改(所以我不只是试图打印522个相同的标签)。ZPL命令长度限制?

command += '^XA'; 
command += '^LT23'; 
command += '^FO125,30'; 
command += '^A0N,85,50';   
command += '^FB950,1,,C'   
command += '^FD'+row['item_desc']+'^FS'; 
command += '^FO20,260'; 
command += '^A0N,50,50';   
command += '^FD'+part_number+'^FS'; 
command += '^FO122,260'; 
command += '^A0N,50,50';   
command += '^FB950,1,,C'   
command += '^FD'+row['our_part_number']+'^FS'; 
command += '^FO935,255'; 
command += '^A0N,25,25';   
command += '^FB200,2,,R'   
command += '^FDMy Company Name Phone_Number ^FS'; 
command += '^FO'+margin+',105'; 
command += '^BY3'; 
command += '^B3N,N,144,N,N';  
command += '^FD'+row['our_part_number']+'^FS'; 
command += '^XZ'; 

我的测试批次是522个标签。在添加公司信息和条形码之前,打印机打印所有522个标签,但使用上面的代码,它只打印485个标签。

限制在哪里?可以发送到端口的字符串长度是否有限制?我应该在每个标签后添加回车符和换行符(因此打印机知道在哪里打断字符串)?还是有一个IP:端口超时?

打印机将打印标签,但不会以任何方式回应发送该命令的端口。如果我将标签分成单独的命令字符串并按顺序发送而不会暂停,则打印机不打印任何标签。是否可以查询打印机以知道何时发送下一个命令字符串?

通常情况下,我只想实验试错,但在这种情况下,该方法是昂贵且浪费...

+0

也许如果您单独发送每个标签打印机缓冲区超载?尝试添加一些时间,例如在100个标签后。尝试使用参数并在打印机中存储模板。 –

回答

0

尝试

^PQ522 

的^ XZ之前的命令。

我建议你只发送一次。发送它522次(甚至485次)可能只是一个浪费。

+0

我不明白那会做什么。所有标签都是独一无二的。 – shaun5

+0

没有迹象表明标签是唯一的。你的意思是你改变了每个标签上的描述?您需要更详细地解释标签批次的细节。 – Magoo

+0

我已经在每个循环中加入了我的问题,以更好地概述发生了什么。 – shaun5

0

使用Fn领域并在本地保存的标签打印机(使用^ DF),那么只需调用标签和填充动态数据的FN领域