P-Touch Label Drucker mit Linux benutzen

ptouch-print ist ein Kommandozeilen Programm um Label mit Brother P-Touch Druckern unter Linux auszudrucken.

Der Drucker wird direkt über die libusb angesteuert, man muss also den Drucker nicht über CUPS installieren (und nur so kann das Programm automatisch erkennen, was für ein Band eingelegt ist).

Das Programm wurde ursprünglich für den 'Brother PT-2430PC' geschrieben und mit diesem Drucker ausführlich getestet, mit der Zeit kamen jedoch dank Rückmeldungen von anderen Nutzern weitere Modelle hinzu - diese sind mehr oder weniger gut unterstützt.

Derzeit unterstützte Brother Label Drucker

Alle unterstützten Drucker können mit der Option

$ ptouch-print --list-supported

angezeigt werden.

Weitere funktionieren vielleicht ebenfalls (Bitte sendet mir die USB VID und PID sowie maximale Breite (in Pixeln) und Auflösung (in DPI) damit ich den Drucker hinzufügen kann).

Anleitung zum compilieren

./compile.sh

Benötigt werden cmake, git, libgd und libusb - bei manchen Distributionen (z.B. Ubuntu) sind die Header-Files in separaten Paketen "libusb-dev" die ggf. noch nachinstalliert werden müssen.

Kurzanleitung des Programms

Um eine (zweifarbige) PNG-Bilddatei zu drucken (die dunklere Farbe wird dabei automatisch ermittelt):

$ ptouch-print --image bild.png

Um ein zweizeiliges Label zu drucken:

$ ptouch-print --text "Zeile 1" --newline "Zeile 2"
Bitte beachtet, dass sich die Syntax für mehrzeiligen Druck mit Version 1.7 geändert hat (dafür kann man jetzt auch Text drucken, welcher mit "-" beginnt ;-)

Um ein paar Labels auf einmal zu drucken:

$ ptouch-print --text "Label 1" --cutmark --text "Label 2"

wobei man natürlich auch die Schnittmarken (--cutmark) weglassen kann.
Mit einem anderen Font oder in einer bestimmten Grösse drucken:

$ ptouch-print --font "Ubuntu:bold" --fontsize 23 --text Blahblah

Einen Probedruck in eine Datei machen:

$ ptouch-print --fontsize 96 --text Blahblah --writepng output.png

Und wer die Parameter nicht immer auf dieser Webseite nachschlagen will, kann ptouch-print mit dem Parameter --help aufrufen.

Udev Regel, damit man ptouch-print auch als nicht-root verwenden kann

Damit man ptouch-print auch als normaler Benutzer ohne root-Rechte verwenden kann, ohne jedes Mal auch sudo zurückgreifen zu müssen, kann man eine passende udev Regel verwenden:

/etc/udev/rules.d/20-usb-ptouch-permissions.rules
# Enable non-root access for ptouch printers SUBSYSTEM == "usb", ATTRS{idVendor} == "04f9", ATTRS{idProduct} == "202d", MODE = "0666"

Im Unterverzeichnis udev ist ein Satz Regeln für ettliche Drucker, die Regeln müssen aber je nach verwendeter Linuxdistribution angepasst werden (z.B. wenn uaccess nicht unterstützt wird).

Downloads

Web-Frontends

Ich habe mit der Zeit von mehreren Personen die Rückmeldung bekommen, dass sie ein Web-Frontend für die Anwendung gebaut haben.

Da ich persönlich da nicht so Bedarf daran habe, habe ich die Angebote mir den Quellcode zu schicken nie genutzt.

Inzwischen (Juli 2025) realisiere ich aber, dass da anscheinend ein Bedarf ist (weil der WAF des commandline-tools zugegeben sehr gering ist) und möchte gerne zu den jeweiligen Projekten verlinken. Wer also ein Frontend hat den Quellcode veröffentlicht hat, darf mir gerne eine Nachricht schicken, dann verlinke ich das hier.

Bekannte Fehler

Drucker mit mehr als 180 dpi werden aktuell nicht korrekt unterstützt

Wie kann ich patches einreichen?

Bevorzugt per

$ git format-patch -1 <commit_hash>

sofern man selbst mit git arbeitet. Ansonsten gerne auch als "diff"

Bitte beachtet, dass ich von eingereichten patches üblicherweise Name und eMailadresse des Authors veröffentliche! Wer das nicht will, bitte in der Mail darauf hinweisen!

Feedback

Bitte die Liste der Häufig gestellten Fragen lesen bevor ihr eine Anfrage stellt, danke.

Ich habe keine Zeit mehr für dieses Projekt. Dennoch, Patches für neue Modelle und Bugfixes oder andere Verbesserungen nehme ich jedoch gerne an um diese einzupflegen. Da ich den Code jeweils vor dem Einpflegen teste, kann das dauern. Wenn Du mir einen Bugreport senden möchtest, bitte achte darauf, dass folgende Angaben enthalten sind:

Erwarte nicht, dass ich innerhalb von Tagen oder gar Stunden antworte - es ist eher so, dass ich ein oder zweimal pro Monat Zeit für diese (und andere Projekte) erübrigen kann (die meisten von uns müssen halt auch irgendwie Geld verdienen ;-)

Anfragen OHNE Versionsangabe oder für Versionen von irgendwelchen Forks (also alles, was nicht von https://git.familie-radermacher.ch/linux/ptouch-print.git stammt) werden UNBEANTWORTET direkt gelöscht