Skip to content

A Python-based web service to print labels on Brother QL label printers. Based on brother_ql: https://github.com/pklaus/brother_ql

License

Notifications You must be signed in to change notification settings

tobalr/brother_ql_web

 
 

Repository files navigation

brother_ql_web

_This fork adds api for printing images. The web interface has also been slightly modified to allow image printing.

Personal notes on installation

To install on raspberry pi using venv install the following dependencies:

apt install unp python3.7-venv git
git clone https://github.com/tobalr/brother_ql_web.git
cd brother_ql_web/
python3 -m venv venv
source venv/bin/activate
pip install -U pip
pip install -r requirements.txt 

Edit configuration

To start server at boot Create /home/pi/launch_server.sh with content

#!/bin/bash
cd /home/pi/brother_ql_web
source venv/bin/activate
./brother_ql_web.py
chmod +x launch_server.sh

add before exit 0 to /etc/rc.local

/home/pi/launch_server.sh &

This is a web service to print labels on Brother QL label printers.

You need Python 3 for this software to work.

Screenshot

The web interface is responsive. There's also a screenshot showing how it looks on a smartphone

Installation

ProTip™: If you know how to use Docker, you might want to use my ready-to-use Docker image to deploy this software. It can be found on the Docker hub.
Otherwise, follow the instructions below.

Get the code:

git clone https://github.com/pklaus/brother_ql_web.git

or download the ZIP file and unpack it.

Install the requirements:

pip install -r requirements.txt

In addition, fontconfig should be installed on your system. It's used to identify and inspect fonts on your machine. This package is pre-installed on many Linux distributions. If you're using a Mac, I recommend to use Homebrew to install fontconfig using brew install fontconfig.

Configuration file

Copy config.example.json to config.json (e.g. cp config.example.json config.json) and adjust the values to match your needs.

Startup

To start the server, run ./brother_ql_web.py. The command line parameters overwrite the values configured in config.json. Here's its command line interface:

usage: brother_ql_web.py [-h] [--port PORT] [--loglevel LOGLEVEL]
                         [--font-folder FONT_FOLDER]
                         [--default-label-size DEFAULT_LABEL_SIZE]
                         [--default-orientation {standard,rotated}]
                         [--model {QL-500,QL-550,QL-560,QL-570,QL-580N,QL-650TD,QL-700,QL-710W,QL-720NW,QL-1050,QL-1060N}]
                         [printer]

This is a web service to print labels on Brother QL label printers.

positional arguments:
  printer               String descriptor for the printer to use (like
                        tcp://192.168.0.23:9100 or file:///dev/usb/lp0)

optional arguments:
  -h, --help            show this help message and exit
  --port PORT
  --loglevel LOGLEVEL
  --font-folder FONT_FOLDER
                        folder for additional .ttf/.otf fonts
  --default-label-size DEFAULT_LABEL_SIZE
                        Label size inserted in your printer. Defaults to 62.
  --default-orientation {standard,rotated}
                        Label orientation, defaults to "standard". To turn
                        your text by 90°, state "rotated".
  --model {QL-500,QL-550,QL-560,QL-570,QL-580N,QL-650TD,QL-700,QL-710W,QL-720NW,QL-1050,QL-1060N}
                        The model of your printer (default: QL-500)

Usage

Once it's running, access the web interface by opening the page with your browser. If you run it on your local machine, go to http://localhost:8013 (You can change the default port 8013 using the --port argument). You will then be forwarded by default to the interactive web gui located at /labeldesigner.

All in all, the web server offers:

  • a Web GUI allowing you to print your labels at /labeldesigner,
  • an API at /api/print/text?text=Your_Text&font_size=100&font_family=Minion%20Pro%20(%20Semibold%20) to print a label containing 'Your Text' with the specified font properties.

License

This software is published under the terms of the GPLv3, see the LICENSE file in the repository.

Parts of this package are redistributed software products from 3rd parties. They are subject to different licenses:

About

A Python-based web service to print labels on Brother QL label printers. Based on brother_ql: https://github.com/pklaus/brother_ql

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 54.1%
  • HTML 45.2%
  • CSS 0.7%