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

./build.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" "Zeile 2"

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 oder --wiegingdasnochmal aufrufen.

Downloads

Bekannte Fehler

GNU gettext ist momentan kaputt - das liegt daran, dass ich das im cmake build nicht hinkriege (bin kein cmake Experte).
Falls sich jemand damit auskennt und eine funktionierende Lösung mit cmake dafür hat, freue ich mich auf Rückmeldung.

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 uralte Versionen von irgendwelchen verwaisten Clones werden UNBEANTWORTET direkt gelöscht, u.a.: