python - Datamax DLP 使用 python 在其他文本上方发送和打印图像
问题描述
有人对 DLP 语言有任何经验吗?
我正在尝试使用 python 发送一些文本和条形码,现在我需要发送一个 bmp 图像。
该文档对我来说真的很难阅读,所以我希望其他人以前使用过并且可以帮助我。
解决方案
这是绝对可能的。这是我目前在 Windows 上安装的 Datamax O'Neil 打印机上的操作方式。下面的 DPL 命令可以使用python 的 win32print 包装器发送到打印机,或者使用套接字库直接发送到打印机的 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 命令参考。
对于在 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 软件将图像预存储在打印机内存中(作为 BMP 文件),并使用 DPL 代码对其进行引用。
推荐阅读
- delphi - 如何在 TcxGrid 上显示自定义记录数
- r - 如何在R中的数据框中相互比较行
- go - Golang 迭代嵌套映射并将键更改为标题大小写
- python - 如何修复 Porter Stemmer 错误?
- flutter - Flutter:使用 GPS 确定车辆的速度
- python - 安装 Python http 包时遇到问题
- git - NGINX fastcgi 代理上使用 git-http-backend 的多个同时请求
- jquery - 在移动 jQuery 上隐藏地址和浏览器页脚
- azure - 可以通过 Web 应用程序防火墙状态/计费以编程方式暂停/恢复 Azure 的应用程序网关吗?
- python - python numpy linalg求解器:错误答案