2012-08-11 29 views
1

使用Ruby使用其IP地址将一系列数据字符串发送到Zebra打印机。将ZPL数据字符串发送到Ruby中的IP地址

这里是Ruby代码我已经开始与:

require 'socket' 
streamSock = TCPSocket.new("127.0.0.1", 20000) 
#streamSock.send("Hello\n") 
str = streamSock.recv(100) 
print str 
streamSock.close 

我需要更换"Hello\n"片与ZPL(斑马打印语言)这一系列的字符串代码:

"^XA" + 

"^FO50,50" + 

"^A0N50,50" + 

"^FDHello, World!^FS" + 

"^XZ"; 

我已经尝试了几种使用#streamSock.send(“xxx”)的方法 - 例如:#streamSock.send(“^ XA”) - 然后分别使用所有其他字符串元素。

我试图把的ZPL代码整个字符串转换成单行线,就像

streamSock.send(“几个变种^^XA^FO50,50^A0N50,50 FDHello,世界!^^FS XZ“)

Zebra标签打印机不响应。如果我使用另一个实用程序将较早的一系列字符串作为文本文件发送到打印机,则打印效果会很好。

任何有关Ruby代码应该如何工作的想法?

+0

什么型号的打印机是什么呢?你是说发送'你好\ n'打印好,但不是ZPL?如果是这样,您可以使用行式打印模式而不是ZPL打印机。如果它处于行式打印模式,则不能理解ZPL,反之亦然,它们是互斥的。 – 2012-08-13 12:38:08

+0

我得到它的工作: 需要 '插座' 主机名= '192.168.1.6' 端口= 515 S = TCPSocket.open(主机名,端口) s.puts“^^XA^F100,100 BXN, 10,200^FO150,120^FD01000012000000311081020122100000009^FS^XZ“ s.close – devrwj 2012-10-30 20:03:55

回答

2

它为我的作品:

require 'socket' 

streamSock = TCPSocket.new("192.168.205.214", 6101) 
str = "^XA" + "^FO50,50" + "^A0N50,50" + "^FDHello World^FS" + "^XZ" 
streamSock.send(str , 0) 

streamSock.close 
相关问题