【问题标题】:Brother printer Esc/P兄弟打印机 Esc/P
【发布时间】:2017-08-04 09:56:21
【问题描述】:

我想为产品列表打印价格标签。随着价格的变化,我无法使用 csv,而是通过内部应用程序执行此操作。如何将数据数组发送到打印机。我可以一次打印一个标签,但这很慢。通过 P Template 软件,它的打印速度非常快。任何帮助将不胜感激。

我正在以十六进制向打印机发送命令,它们工作正常。可以使用 Esc/P 模式和 P 模板模式打印。 P 模板模式更好,因为布局可以设置并存储在打印机上,然后我需要做的就是发送对象数据。

任何关于如何发送排序数组的帮助将不胜感激。

【问题讨论】:

    标签: printing


    【解决方案1】:

    我们使用的是 Mac 计算机(任何 Unix 机器都会这样做),并通过一个简单的 bash 脚本将数据发送到打印机。如果使用 Windows 计算机,它的工作方式相同,只需找到一种将二进制数据发送到串行/USB 端口的方法即可。

    (我们首选 Unix 机器的原因,因为我们还通过 Internet 与外部服务器数据库通信,这是 Unix 脚本中的一项简单任务)。

    所有 Unix 机器都有“lp”命令,可以将二进制数据发送到打印机。我在 bash 终端中编写了一个脚本,它解析其参数,将它们复制到“数据”变量,然后将这个“数据”变量发送到打印机。

    总之,一个小标签可以这样打印:

    data="\x1Bia\x00"       # set esc_p mode
    data="${data}\x1B@"     # initialize printer (resets many variables)
    data="${data}\x1BX\x32" # set font height
    data="${data}Hello"     # the actual data to be printed
    data="${data}\x0C"      # advances the page (basically prints the label)
    
    # Check your binary on the screen (for debugging):
    echo -ne $data | hexdump -C
    
    # Send the data to the printer
    echo -ne $data | lp -d Brother_PT_P900W
    

    当然,您必须将“Brother_PT_P900W”替换为您自己的打印机名称。

    【讨论】:

      猜你喜欢
      • 2016-07-08
      • 2016-06-05
      • 1970-01-01
      • 1970-01-01
      • 2011-10-25
      • 2022-06-28
      • 2014-12-14
      • 1970-01-01
      • 2017-10-21
      相关资源
      最近更新 更多