Fork of https://github.com/robby-cornelissen/pt-p710bt-label-maker
- Added support to use
-i
/--info
to just query the printer information - Added ability to define default BT address to save typing it in each time
- Added support for multiple tape widths (tested on 12mm)
- Detects tape width to try to use automatically
- Changed some function comments to be docstrings
- Moved some legacy string formatting to f-strings
- Updated rasterizer to support widths other than 128px
This is a small application script to allow printing from the command line on the Brother P-Touch Cube (PT-P710BT). It is based on the "Raster Command Reference" made available by Brother on their support website. Theoretically, it should also work with other label printers that use the same command set, such as the PT-E550W and PT-P750W, but since I don't have access to these devices, I have not been able to verify this. The script converts a PNG image to the raster format expected by the label printer, and communicates this to the printer over Bluetooth.
I wrote this script because of layout limitations encountered in the smartphone apps provided by the manufacturer. While they do make a desktop application available that seems to be more full-featured, it is only available for Microsoft Windows and Mac OS X, neither of which is my operating system of choice. In addition, I wanted the ability to execute label printing operations from the command-line to allow for easy integration with various pipelines.
Similar scripts that exist for the older P-Touch Cube (PT-P300BT), as can be found here and here, didn't completely suit my purpose, but provided helpful reference material.
The application script depends on the following packages:
pybluez
, for Bluetooth communicationpypng
, to read PNG imagespackbits
, to compress data to TIFF format
These can all be installed using pip
:
pip install -r requirements.txt
Note that the installation of pybluez
requires the presence of the bluez
development libraries and libbluetooth
header files (libbluetooth3-dev
). For most Linux distributions, these should be available through your regular package management system.
The application can be called to print as follows:
python label_maker.py --image <image-path> <bt-address>
The expected parameters are the following:
image-path
The path to the PNG file to be printed. The image needs to be the correct number of pixels high for the size of your tape. The width is variable depending on how long you want your label to be. The script bases itself on the PNG image's alpha channel, and prints all pixels that are not fully transparent (alpha channel value greater than 0).bt-address
The Bluetooth address of the printer. Thebluetoothctl
application (part of the aforementionedbluez
stack) can be used to discover the printer's address, and pair with it from the command line:$> bluetoothctl [bluetooth]# scan on [NEW] Device A0:66:10:CA:E9:22 PT-P710BT6522 [bluetooth]# pair A0:66:10:CA:E7:42 [bluetooth]# exit $>
There are other options available, use python lable_maker.py --help
to see them.
Different sized tapes require different pixel heights to print to the tape.
The sizes apply to style TZe tapes only.
Tape Height | Pixel Height |
---|---|
3.5mm | 24 |
6mm | 32 |
9mm | 50 |
12mm | 70 |
18mm | 112 |
24mm | 128 |
In its current version, the program only prints one label at the time.
This work is licensed under a Creative Commons Attribution 4.0 International License.