LPrint标签打印工具上手指南:一个命令通吃Zebra、TSC、Dymo等主流标签打印机
LPrint标签打印工具上手指南:一个命令通吃Zebra、TSC、Dymo等主流标签打印机
【免费下载链接】lprintA Label Printer Application项目地址: https://gitcode.com/gh_mirrors/lp/lprint
如果你正在为仓库、门店或电商小团队寻找一套开源的标签打印解决方案,那么LPrint这款轻量级标签打印工具值得你花五分钟了解。它是一个专为标签和票据打印机设计的打印管理程序,用一个命令就能把USB和网络标签打印机变成标准网络打印服务,免驱对接电脑和手机。本文会从零带你跑通安装、添加打印机、日常打印,再到服务器模式的完整玩法,并附上避坑清单。
先讲一个我自己的"贴单子"故事
去年双十一,我朋友开了个淘宝小店,每天要打几百张快递面单。他的打印机是一台老旧的Zebra,Windows电脑上装驱动装了半天,换了台Mac又得重装一套,中间还因为系统升级把驱动弄崩了,打印任务全卡在队列里,急得直跺脚。
后来我帮他装了一个小工具,一条命令添加打印机,一条命令发任务,手机、电脑、平板全部免驱直接连,从此再没折腾过驱动。这个工具就是LPrint。
它的官方定位很简单:A Label Printer Application,一个标签打印机应用程序。翻译成大白话就是——一个专门为"打标签、打小票"设计的打印管家。
它到底解决了什么问题?
先说你最关心的:市面上普通打印机系统(比如CUPS)是为文档打印设计的,对标签打印机支持很差,经常出现这些问题:
- 快递面单接口输出的往往是PNG图片或原始数据流,普通驱动不一定认
- 标签规格千奇百怪,4x6英寸、1.25x3.5英寸、50x200mm……手动改尺寸麻烦
- 打印机没纸了、断线了、卡纸了,任务悄悄失败,你根本不知道
- 一个办公室几台设备(Windows、macOS、手机),每台都要单独配驱动
LPrint的思路很干脆:把"打印机驱动"这个中间层整个抹掉。它内置了一批主流标签打印机的驱动,并且把每台打印机包装成一个标准的 IPP Everywhere™ 网络打印服务——你不需要装任何驱动,任何支持免驱打印的系统都能直接找到并打印。
IPP Everywhere™ 是打印行业的"普通话"标准,就像手机充电口的 Type-C 一样,设备都讲同一种协议,就能即插即用。
打个比方:LPrint 就像打印界的通用翻译官。打印机说ZPL、TSPL、ESC/POS这些"方言",LPrint负责把它们翻译成统一的IPP"普通话",你的电脑、手机只要会说"普通话"就能和它沟通。
30秒快速上手:从安装到打出第一张标签
LPrint的安装非常省心,Linux用户直接用snap一条命令搞定:
sudo snap install core sudo snap install avahi sudo snap install lprint sudo snap connect lprint:raw-usb sudo snap connect lprint:avahi-control avahi:avahi-control sudo snap start lprint.lprint-server装完就能用了。它的用法是统一的lprint 子命令 参数结构,比如你手上有一张要打印的标签图片:
lprint labels.png对,就这么简单。没写任何子命令时,默认就是"提交打印"(submit)。LPrint会自动探测连接的打印机,如果只接了一台,直接打就行。
如果你是源码党,也可以从 https://gitcode.com/gh_mirrors/lp/lprint 克隆下来自己编译,前提是装好C99编译器和PAPPL、CUPS的开发包:
git clone https://gitcode.com/gh_mirrors/lp/lprint cd lprint ./configure make sudo make install摸清家底:看看手头有哪些打印机和驱动
在添加打印机之前,先用两个"侦察"命令了解一下你的设备情况。
lprint devices列出所有已连接的打印机(包括USB和网络发现到的):
$ lprint devices v1.2.2 network socket://192.168.0.42 "Zebra ZPL" network socket://192.168.0.66 "TSC TTP-247" usb usb://DYMO/LabelWriter%20450?serial=010101010101加个-o verbose还能看到更详细的信息,比如识别出的品牌型号和IEEE-1284设备ID。
lprint drivers列出内置支持的所有驱动:
$ lprint drivers escpos_80mm-203dpi zpl_4inch-203dpi-dt zpl_4inch-203dpi-tt tspl_105mm-203dpi epl2_4inch-203dpi-dt dymo_labelwriter-450 slp_4inch-203dpi ...驱动名的格式是"品牌_尺寸-分辨率-类型",比如
zpl_4inch-203dpi-dt意思是Zebra、4英寸宽、203dpi、热敏直印(direct thermal,不用色带的那种)。
目前LPrint正式支持这些品牌:DYMO、EPSON ESC/POS票据机、西铁城SII SLP、TSPL/TSPL2(如Rollo X1038)、Zebra EPL2和ZPL。另外 Brother、Zebra CPCL 可以通过./configure --enable-experimental开启实验性支持。
把打印机"请进来":add 命令实战
光发现设备还不够,你得给打印机起个名字、挂上驱动,这就是add子命令干的事:
lprint add -d myprinter -v socket://192.168.0.42 -m zpl_4inch-203dpi-dt拆开看这三个关键参数:
-d myprinter:给打印队列起的名,以后打印都叫这个名字-v socket://192.168.0.42:设备地址。USB打印机用usb://开头,网络打印机用socket://IP或snmp://-m zpl_4inch-203dpi-dt:用哪个内置驱动
添加的时候还能顺手把默认参数一起设好,比如这台打印机默认装的是4x6英寸面单:
lprint add -d shipping -v socket://192.168.0.42 -m zpl_4inch-203dpi-dt \ -o media=na_4x6-index_4x6in -o media-type=labels看到那个na_4x6-index_4x6in了吗?这是打印行业的PWG标准尺寸名,格式是"类别_名称_宽x长+单位"。常见的有:
- 4x6英寸快递面单:
na_4x6-index_4x6in - 1.25x3.5英寸地址标签:
oe_address-label_1.25x3.5in - 50x200mm小票:
roll_receipt_50x200mm
记不住也没关系,用lprint options -d myprinter就能列出这台打印机支持的全部尺寸和选项。
把打印玩出花:submit 的常用选项
打印机就位后,日常操作基本就是lprint submit这一个命令。它的参数覆盖面很全,我把高频的整理成了一张表:
| 你想做的事 | 命令示例 |
|---|---|
| 指定打印机打印 | lprint -d shipping labels.zpl |
| 打印3份 | lprint -n 3 -d shipping label.png |
| 指定标签尺寸 | lprint -o media=na_4x6-index_4x6in label.png |
| 打印后裁切 | lprint -o finishings=trim label.png |
| 加深打印浓度 | lprint -o print-darkness=40 label.png |
| 调整打印速度 | lprint -o print-speed=100mm label.png |
| 换用另一卷纸 | lprint -o media-source=alternate-roll label.png |
| 给任务起个名字 | lprint -t "order-10086" label.png |
几个值得说说的细节:
-o media-top-offset=5mm:当标签内容总打偏一点点时,用这个参数做微调,不必改模板-o print-content-optimize=graphic:打条码、线条图形时选它,效果更锐利;打照片选photo-o print-color-mode=bi-level:纯黑白的条码标签选这个,速度快且清晰-o orientation-requested=landscape:图片方向不对时直接转90度,不用回PS改图
打印中途想反悔?lprint cancel可以取消任务;lprint jobs看排队情况;lprint status看打印机当前状态(有没有缺纸、断线)。
一台服务器,全家设备共享打印
上面的玩法是"本机打印",而LPrint真正的大招是服务器模式(lprint server)。
跑起来之后,你接在电脑上的所有标签打印机会变成一个个标准IPP网络打印服务,自动广播到局域网。这时奇迹发生了:
- Windows 10/11:设置 → 打印机 → 自动发现,点两下就装上
- macOS / iPhone / iPad:AirPrint自动发现,手机上直接打面单
- Android / Chrome OS:Mopria免驱,即点即打
- Linux:系统自带打印设置里直接添加
也就是说,一个办公室里大家再也不用每人配一套驱动,只要有一台装着LPrint的机器连着打印机,全屋子的人都能打。对做跨境、开网店的场景尤其实用——手机上打国际面单再也不是梦。
服务器模式还内置了一个Web管理界面,浏览器打开就能添加、删除、修改打印机,还能设置默认打印机。如果你想限制谁有权限动打印机,可以这样启动:
lprint server -o auth-service=cups -o admin-group=wheel意思是:只有wheel组的用户、通过系统认证才能远程管理打印队列。
服务器模式还有一批实用的开关,用-o server-options=...组合使用:
raw-socket:给每台打印机开一个JetDirect端口(91xx),老软件也能直接连usb-printer:在树莓派这类小主机上把LPrint模拟成USB打印机设备,插上就认web-log:网页上直接看日志no-web-interface:想彻底关掉Web管理页就加这个
如果希望开机自启、常驻后台,Linux用systemd(sudo systemctl restart lprint.service),macOS用launchd即可。
进阶技巧:让它更懂你的打印机
自动识别驱动
LPrint的ZPL驱动内置了lprintZPLQueryDriver()(在源码 lprint-zpl.c 里),它会主动向打印机发查询命令,自动判断分辨率、热敏还是热转印。也就是说,很多时候你都不用自己猜驱动名,把设备连上、跑lprint add,它会自动匹配。
配置文件的集中管理
服务器选项既可以写在命令行,也可以写到配置文件里。Linux放在/etc或/usr/local/etc/lprint.conf,macOS放在/Library/Application Support/lprint.conf。每一行写一个选项,比如:
listen-hostname=localhost log-file=syslog server-options=web-log,web-security改完配置重启服务即可生效,很适合批量部署到多台机器。
自愈能力
这是我很喜欢的一点:LPrint会自动从缺纸、断电、断线中恢复。打印机掉线了,任务不会悄悄消失,而是等打印机回来继续打;缺纸时会记录状态,补纸后接着跑。文档里管这个叫"merge jobs over a single connection"——它会把多个任务在一条连接上连续送出,避免反复断开重连造成的卡顿。实测打几百张连续面单时,这个特性真的能救命。
遇到这些问题别慌:常见坑避雷清单
折腾过程中我踩过几个坑,帮你提前排掉:
USB打印机没权限:Linux下如果
lprint devices看不到USB设备,多半是权限问题。用snap安装的话检查一下sudo snap connect lprint:raw-usb是否执行了。网络打印机地址写错:网络打印机要先把它的IP地址打出来(多数长按暂停键出配置页),然后用
socket://IP,别漏了后面的斜杠。尺寸名记不住:别背,直接用
lprint options -d 打印机名查看这台机器支持的所有尺寸和当前配置,所见即所得。打出来的内容上下偏移:不用改模板,用
-o media-top-offset=2mm微调,保存默认值后一劳永逸。想让条码更清晰:用
-o print-content-optimize=graphic,配合bi-level黑白模式,效果立竿见影。master分支不稳定:项目README里作者特别提醒过,master分支可能有些已知问题,不建议直接打包上生产环境,等正式release再升级。
想换语言/换皮肤:Web界面支持多语言,字符串资源都放在 static-resources 目录(比如
lprint-en.strings、lprint-zh.strings之类),想汉化或自定义界面可以直接改这里。
现在,动手试试吧
如果你手头正好有一台标签打印机,我建议你按这个顺序玩一遍,全程大概十分钟:
- 装好LPrint(snap或源码编译)
lprint devices确认设备被识别lprint add添加打印机队列- 找一张PNG标签图,
lprint 图.png打出第一张 - 再试试
lprint server跑起来,掏出手机看看能不能AirPrint发现
你会发现,标签打印这件事,真的可以简单到"一条命令、零驱动"。无论是自用还是给团队部署,LPrint这种开源、免驱、跨平台的方案都值得放进你的工具箱。
去官方文档 DOCUMENTATION.md 和man目录下的手册(man lprint-submit、man lprint-server)继续深挖吧——玩明白了,你会回来感谢那个下午的自己。😄
【免费下载链接】lprintA Label Printer Application项目地址: https://gitcode.com/gh_mirrors/lp/lprint
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
