【问题标题】:Send a ZPL data string to an IP address in Ruby将 ZPL 数据字符串发送到 Ruby 中的 IP 地址
【发布时间】:2012-11-14 02:19:09
【问题描述】:

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

这是我开始使用的 Ruby 代码:

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

我需要用这一系列字符串的ZPL(Zebra Print Language)代码替换"Hello\n"

"^XA" +

"^FO50,50" +

"^A0N50,50" +

"^FDHello, World!^FS" +

"^XZ";

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

我尝试了一些变体,将整个 ZPL 代码字符串放在一行中,例如

streamSock.send("^XA^FO50,50^A0N50,50^FDHello, World!^FS^XZ")

Zebra 标签打印机没有响应。如果我使用另一个实用程序将前面的一系列字符串作为文本文件发送到打印机,它会打印得很好。

对于 Ruby 代码应该如何实现这项工作有什么想法吗?

【问题讨论】:

  • 打印机是什么型号的?你是说发送 'Hello\n' 打印正常,但不是 ZPL?如果是这样,您的打印机可能处于行打印模式而不是 ZPL。如果是行打印模式,则不理解ZPL,反之,互斥。
  • 我让它工作了:需要 'socket' 主机名 = '192.168.1.6' 端口 = 515 s = TCPSocket.open(hostname, port) s.puts "^XA^F100,100^BXN ,10,200^FO150,120^FD01000012000000311081020122100000009^FS^XZ" s.close

标签: ruby string zebra-printers zpl


【解决方案1】:

它对我有用:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-12
    • 2019-04-08
    • 2011-10-16
    • 1970-01-01
    • 2019-08-25
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    相关资源
    最近更新 更多