尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
用 brother_ql 写 Python 程序:BrotherQLRaster 类 API 参考与自定义标签编程实战
用 brother_ql 写 Python 程序BrotherQLRaster 类 API 参考与自定义标签编程实战【免费下载链接】brother_qlPython package for the raster language protocol of the Brother QL series label printers (QL-500, QL-550, QL-560, QL-570, QL-700, QL-710W, QL-720NW, QL-800, QL-810W, QL-820NWB, QL-1050, QL-1060N and more).项目地址: https://gitcode.com/gh_mirrors/br/brother_qlbrother_ql 是一个 Python 包用于控制 Brother QL 系列标签打印机如 QL-500、QL-500、QL-710W、QL-820NWB、QL-1060N 等。它完整实现了兄弟 QL 打印机的光栅Raster打印语言让程序员绕过系统打印驱动直接向打印机发送指令文件——这意味着无需任何打印机驱动甚至在没有官方驱动的树莓派上也能精确控制每一个像素。本文将带你完整梳理核心类BrotherQLRaster的 API并动手完成自定义标签编程实战。为什么用 brother_ql 而不是打印驱动很多程序在给标签设置页面尺寸和边距时总会出错而打印条码这类内容对像素精度要求极高。brother_ql 的独特之处在于零驱动依赖不经过操作系统打印系统直接与打印机对话像素级控制每个点都由你的代码决定适合高精度条码、Logo 标签跨平台支持 Linux、macOS、WindowsUSB 和网络两种方式支持彩色QL-800 系列可在 DK-22251 标签上打印黑红双色。快速安装与验证一条命令即可完成 brother_ql 安装pip install --upgrade brother_ql安装后可用命令行工具快速验证环境brother_ql info labels # 查看所有可用标签尺寸 brother_ql discover # 查找已连接的标签打印机如果打印机带有Editor Lite模式打印前需长按按钮关闭该模式指示灯熄灭否则 USB 打印会失败。BrotherQLRaster 类 API 参考BrotherQLRaster是整个包的核心位于 brother_ql/raster.py。它的工作方式很直观每调用一个add_xxx()方法就往成员变量data中追加一段光栅指令字节最终data就是可直接发送给打印机的完整指令文件。构造与基本属性from brother_ql import BrotherQLRaster qlr BrotherQLRaster(QL-710W) # 指定打印机型号属性说明data累积生成的指令字节流最终要发送的就是它model/model_obj当前型号字符串及对应的 Model 对象exception_on_warning设为True时遇到型号不支持的指令直接抛异常而非仅告警two_color_support当前型号是否支持黑红双色打印pquality打印质量True为高质量默认所有支持的型号定义在 brother_ql/models.py 的ALL_MODELS列表中涵盖 QL-500 到 QL-1115NWB以及 PT-P750W、PT-P900W。常用方法一览方法作用add_initialize()初始化打印机ESC 开启新作业add_invalidate()清空打印机指令缓冲区add_switch_mode()切换到光栅动态命令模式add_media_and_quality(rnumber)设置介质类型、宽度、长度与打印质量add_raster_data(image, second_imageNone)添加图像位图数据第二张图用于 QL-800 系列的红色层add_autocut(autocutFalse)控制是否自动裁切标签add_cut_every(n1)每打印 n 张标签后裁切一次add_compression(compressionTrue)启用 PackBits 压缩减小传输体积add_margins(dots0x23)设置打印边距单位点add_status_information()请求打印机状态信息add_print(last_pageTrue)结束打印发送结束符^Z或换页符另外还有两个实用属性get_pixel_width()返回该型号可打印的像素宽度每行字节数 × 8。调用add_raster_data()前务必保证图像宽度与之完全一致否则会抛出BrotherQLRasterErrormtype/mwidth/mlength设置介质类型、宽度和长度配合add_media_and_quality()使用。自定义标签编程实战从零生成一个标签下面用最少的代码演示完整流程——创建一个 62mm 宽、10 像素高的黑白标签并保存为指令文件from PIL import Image from brother_ql import BrotherQLRaster qlr BrotherQLRaster(QL-710W) qlr.exception_on_warning True # 严格模式尽早暴露问题 # 准备图像宽度必须是 get_pixel_width()62mm 约 696 像素 img Image.new(1, (qlr.get_pixel_width(), 10), color0) qlr.add_initialize() # 初始化 qlr.add_invalidate() # 清缓冲 qlr.add_media_and_quality(0x000000D2) qlr.add_compression(True) # 启用压缩 qlr.add_raster_data(img) # 写入位图 qlr.add_print(last_pageTrue) # 结束 open(label.bql, wb).write(qlr.data)保存后的label.bql文件可以直接通过命令行发送打印brother_ql send -m QL-710W -p tcp://192.168.1.21 label.bql 实战技巧如果不想手写每个add_xxx()调用可以改用高层函数create_label()见 brother_ql/brother_ql_create.py它会自动处理模式切换、边距、裁切、旋转、阈值二值化等繁琐细节from brother_ql import create_label create_label(qlr, my_image.png, 62, threshold70, cutTrue)图像到标签的转换逻辑缩放、二值化、抖动、红层分离全部封装在 brother_ql/conversion.py 和 brother_ql/image_trafos.py 中。指令如何到达打印机三大后端生成的data字节流需要经传输后端送达打印机brother_ql/backends/ 提供三种选择后端连接方式适用系统示例标识符networkTCP 9100 端口全平台WiFi/网口机型tcp://192.168.1.21:9100pyusbUSB全平台usb://0x04f9:0x2015/...linux_kernelUSB仅 Linux/dev/usb/lp0网络机型推荐直接用tcp://IP地址连接最省事USB 机型在 Windows 上需先安装 libusb-win32 设备过滤器。型号与标签的对应关系可查 brother_ql/labels.py 中的LabelsManager包括连续式12/29/38/50/54/62/102mm 等和预裁切式如 23x23、62x100、圆形 d24两大类。常见问题速查BrotherQLUnknownModel型号拼写错误可用brother_ql info models查看支持的型号BrotherQLRasterError: Wrong pixel width图像宽度与型号不符用get_pixel_width()校准尺寸BrotherQLUnsupportedCmd指令不受当前型号支持如对 QL-500 启用压缩可参考各型号的compression、cutting等能力标志。所有异常定义集中在 brother_ql/exceptions.py均以BrotherQLError为基类方便统一捕获。总结掌握BrotherQLRaster就掌握了 brother_ql 的全部精髓追加指令 → 读取data→ 选择后端发送。从简单的一行create_label()调用到逐像素定制双色条码标签这个 API 都能满足——这正是它在树莓派、CI 流水线、仓储系统等场景中广受欢迎的原因。【免费下载链接】brother_qlPython package for the raster language protocol of the Brother QL series label printers (QL-500, QL-550, QL-560, QL-570, QL-700, QL-710W, QL-720NW, QL-800, QL-810W, QL-820NWB, QL-1050, QL-1060N and more).项目地址: https://gitcode.com/gh_mirrors/br/brother_ql创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

XGBoost竞赛实战:从原理到调参的完整建模指南

XGBoost竞赛实战:从原理到调参的完整建模指南

1. 项目概述:为什么XGBoost是数学建模竞赛的“王牌算法”? 如果你参加过数学建模竞赛,或者正准备参加,那你一定对“华为杯”这个名字不陌生。作为国内研究生阶段最具影响力的数学建模赛事之一,它不仅是学术能力的试金石…

📅 2026/10/28 0:48:01
一键安装 OpenCV:MILQ 热门脚本 install-opencv.sh 完整拆解与使用教程

一键安装 OpenCV:MILQ 热门脚本 install-opencv.sh 完整拆解与使用教程

一键安装 OpenCV:MILQ 热门脚本 install-opencv.sh 完整拆解与使用教程 【免费下载链接】milq Useful code of Manuel Ignacio Lpez Quintero 项目地址: https://gitcode.com/gh_mirrors/mi/milq MILQ 是开发者 Manuel Ignacio Lpez Quintero 精选的开源代码…

📅 2026/10/3 12:38:38
2024年Java开发者就业指南:技能升级与面试突破

2024年Java开发者就业指南:技能升级与面试突破

1. 行业现状与背景分析 2024年春季招聘季已经到来,但Java开发岗位的就业压力依然居高不下。这个现象背后反映的是整个IT行业的结构性变化。从去年开始,各大互联网公司的招聘规模普遍缩减30%-40%,而Java作为企业级开发的主流语言,其…

📅 2026/9/28 5:26:24
MORE NEWS

更多资讯

📰

深度学习训练数据集加载避坑指南:从解压到DataLoader的完整流程

简介:这份深度学习训练数据集面向图像分类与目标检测方向的开发者、学生及研究者,提供可直接用于模型训练与验证的标注图像资源,帮助解决入门与实验阶段缺少真实样本的问题。压缩包共305个文件,以300张jpg图像为主体,另…

📰

剑网三团长语音合成:讯飞TTS接入与指令队列实战

简介:这是一款面向剑网三玩家、尤其是团队副本团长与指挥新手的语音合成辅助工具,基于讯飞TTS技术,将文本指令自动转换为团长指挥语音并播放,帮助不擅长口头表达的玩家也能顺畅完成副本指挥,提升团队协作效率与游戏体验…

📰

Debian系统下Ollama的完整安装与优化指南

1. Debian系统下Ollama的完整安装指南在开源大模型工具链中,Ollama以其轻量化和易用性成为开发者本地部署AI模型的首选方案。作为长期使用Debian进行AI开发的从业者,我将在本教程中详细演示如何在Debian系统上完成Ollama的完整部署,特别针对国…

📰

水稻病害识别:基于传统机器学习的轻量级落地方案

简介:本资源是一套基于Python机器学习技术实现的水稻病虫害自动识别系统源码,面向农业信息化开发者、计算机视觉初学者及智慧农业项目实践者,旨在解决田间图像采集后病虫害种类快速判别与模型部署的实际问题。压缩包共310个文件,含…

📰

超帧(Hyperframes)解决视频时间一致性问题的原理与实战

做视频处理这几年,我一度是个彻头彻尾的“逐帧主义者”——把每一帧当成独立的图片去修、去增强、去插帧。直到有一次接了个老胶片修复项目,单帧输出张张完美,一播放却像迪斯科灯球一样疯狂闪烁,客户直接发来一句“你是不是用了什…

📰

OpenShell复盘:让终端听懂人话,自动生成Shell命令

写这篇OpenShell复盘之前,我先说点实在的:如果你手里每天都在做重复性文件操作、日志分析、数据统计这类“含键盘量过高”的活儿,那么OpenShell这类工具就是给这些破事按下的暂停键。它不是一个能让你真正“躺着”写完程序的玩具,…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬