Datamax DLP使用python发送并打印一个位于其他文本之上的图像

2024-05-15 06:02:18 发布

您现在位置:Python中文网/ 问答频道 /正文

有人有DLP语言的经验吗

我试图使用python发送一些文本和条形码,现在我需要发送一个bmp图像到

文档对我来说真的很难阅读,所以我希望其他人以前用过,可以帮助我

这是文件 https://www.honeywellaidc.com/en/-/media/en/files-public/technical-publications/printers/1common/dpl_88-2360-01_b.pdf


Tags: 文件文档https图像文本com语言www
1条回答
网友
1楼 · 发布于 2024-05-15 06:02:18

这是绝对可能的。下面是我目前如何在安装在Windows上的Datamax O'Neil打印机上执行此操作。下面的DPL命令可以使用win32print wrapper for python发送到打印机,也可以使用socket library直接发送到打印机的IP:

DPL代码:

dpl_code = b'''<STX>LH15D11FA+
191100200140035THIS IS SOME TEXT
1W1j00050010000THIS IS A CODE128 BARCODE
121100000850010
1Y1100501600315THIS_IS_AN_IMAGE_FILE_ALREADY_STORED_ON_THE_PRINTER
191100202650010THIS IS SOME MORE TEXT
E'''

这个<;STX>;必须替换为特殊字符(默认值为0x02,不呈现为文本)。每一行代表一个文本字符串,或一个图形组件,如预先存储在打印机内存中的条形码或图像。有关语言语法的更多详细信息,请参阅DPL command reference

对于Windows上作为默认打印机安装的打印机:

import win32print

printer_name = win32print.GetDefaultPrinter()
printer = win32print.OpenPrinter(printer_name)
win32print.StartDocPrinter(printer, 1, ("raw_data", None, "RAW"))
win32print.WritePrinter(printer, dpl_code)
win32print.EndDocPrinter(printer)
win32print.ClosePrinter(printer)

对于可通过网络访问的打印机:

import socket

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as connection:
  connection.settimeout(timeout)
  connection.connect((ip_address, port))
  connection.send(dpl_code)
  response = connection.recv(1024)

这种方法对我来说有些成功,但我发现使用Zebra打印机(ZPL)要容易得多。至于发送图像和打印它们,不幸的是,我还没有成功。我需要首先使用NetiraCT software将图像预先存储在打印机内存中(作为BMP文件),并用DPL代码引用它

相关问题 更多 >

    热门问题