Command-line utility for printing to Brother QL series label printers.
Tested with:
- QL-570
Hopefully also works with:
- QL-500/550
- QL-560
- QL-580N
- QL-650TD
- QL-700
- QL-710W
- QL-720W
- QL-1050
- QL-1060N
Inspired, though not derived from, the ql570 tool. Licensed under the GPLv3 nevertheless.
Requires GNU make
and libpng
(with development headers), with pkg-config
to locate libpng headers & libs.
Simply run make
in this directory, e.g.:
$ make
cc -std=c11 -Wall -Wextra -g -Iinclude -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200809 -I/usr/include/libpng12 -c src/main.c -o build/main.o
cc -std=c11 -Wall -Wextra -g -Iinclude -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200809 -I/usr/include/libpng12 -c src/ql.c -o build/ql.o
cc -std=c11 -Wall -Wextra -g -Iinclude -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200809 -I/usr/include/libpng12 -c src/loadpng.c -o build/loadpng.o
cc -lpng12 build/main.o build/ql.o build/loadpng.o -o build/qlprint
$
Syntax:
qlprint [-p lp] -i
[-p lp] [-m margin] [-a] [-C|-D] [-W width] [-L length] [-Q] [-n num] [-t threshold] png...
Where:
-p lp Printer port (default /dev/usb/lp0)
-i Print status information only, then exit
-m margin Margin (dots)
-a Enable auto-cut
-C Request continuous-length-tape when printing (error if not)
-D Request die-cut-labels when printing (error if not)
-W width Request particular width media when printing (error if not)
-L length Request particular length media when printing (error if not)
-Q Prioritise quality of speed
-n num Print num copies
-t threshold Threshold for black-vs-white (default 128, i.e. 0-127=black)
png... One or more png files to print
The PNG files are converted to monochrome internally. The black-vs-white
threshold for this conversion may be tuned with the -t threshold
argument.
Image height is limited to the capability of the printer (720 for most, 1296 for 1050/1060N models). Attempting to print larger images will fail.
On successful printing, the exit code is zero; in case of any error, the exit code is non-zero and an error message is printed to stderr.
Here with a narrow continuous-length-tape cartridge loaded.
$ ./build/qlprint -i
Printer: QL-570
Mode: no-auto-cut
Errors: none
Media type: continuous-length-tape
Media width (mm): 29
$
$ ./build/qlprint -a example.png
example.png (135x135) OK
$
$ ./build/qlprint -a example.png example.png
example.png (135x135) OK
example.png (135x135) OK
$
$ ./build/qlprint -a -n 2 example.png
example.png (135x135) OK
example.png (135x135) OK
$
Assuming a continuous-length-tape cartridge is installed:
$ ./build/qlprint -C example.png
example.png (135x135) OK
$
...otherwise:
$ ./build/qlprint -C example.png
Printer reported error(s): replace-media
$