2012-08-11 66 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 
相關問題