Brother p-touch D450VP
La Brother p-touch D450VP est une petite étiqueteuse destinée à l'impression thermique d'étiquettes bicolores sur rubans laminés ou tissus de 3,5 à 18 mm de large.
Si l'imprimante est autonome, puisqu'elle est dotée d'un clavier et d'un écran, elle peut aussi être reliée à un ordinateur. Bien entendu Brother n'a pas pris la peine de développer un utilitaire compatible Linux mais un utilisateur suisse, Dominic Radermacher, a créé un outil en ligne de commande appelé ptouch-print qui permet d'utiliser l'appareil sous Ubuntu. Voici comment l'installer et utiliser votre p-touch sous Ubuntu.
Compatibilité
- PT-2420PC
- PT-1230PC
- PT-2430PC
- PT-2730 (48 lignes blanches pourraient être imprimées avant le texte souhaité)
- PT-E500 (espaces blancs intercalaires possibles)
- PT-D450
- PT-D450VP (seule testée sous Ubuntu)
Pré-requis
- Disposer des droits d'administration.
- Disposer d'une connexion à Internet configurée et activée.
Dominic utilise Arch Linux, par conséquent sous Ubuntu il va falloir compiler l'application. Ce n'est pas si difficile mais ça demande un peu de méthode.
Outils
En tout premier lieu, il est nécessaire d'installer tous les outils de compilation :
usr@usr-pc:~$ sudo apt install build-essential fakeroot checkinstall automake libglib2.0-dev gettext
Vous devez également installer git :
usr@usr-pc:~$ sudo apt install git
Dépendances
puis les dépendances de ptouch-print sous Ubuntu :
Avec Ubuntu 20.04
libusb-dev libgd-dev autopoint
usr@usr-pc:~$ sudo apt install libusb-dev libgd-dev autopoint
Avec Ubuntu 24.04 (Noble Numbat) et probablement depuis 21.04 LTS
libusb-dev libusb-1.0-0-dev libgd-dev autopoint
usr@usr-pc:~$ sudo apt install libusb-dev libusb-1.0-0-dev libgd-dev autopoint
En une seule commande pour aller vite
- Avec Ubuntu 20.04 (Focal)
usr@usr-pc:~$ for paquet in build-essential fakeroot checkinstall automake libglib2.0-dev gettext git libusb-dev libgd-dev autopoint ; do if [[ $(dpkg -l | grep "${paquet}") ]]; then echo "$paquet déjà installé, rien à faire" ; else sudo apt install "${paquet}"; fi; done
- Avec Ubuntu 24.04 LTS ("Noble Numbat") et probablement depuis Ubuntu 21.04
usr@usr-pc:~$ for paquet in build-essential fakeroot checkinstall automake libglib2.0-dev gettext git libusb-dev libusb-1.0-0-dev libgd-dev autopoint ; do if [[ $(dpkg -l | grep "${paquet}") ]]; then echo "$paquet déjà installé, rien à faire" ; else sudo apt install "${paquet}"; fi; done
Installation
Vous pouvez désormais télécharger les sources dans un répertoire temporaire.
usr@usr-pc:~$ mkdir ~/Documents/RepDeTravail usr@usr-pc:~$ cd ~/Documents/RepDeTravail usr@usr-pc:~$ git clone https://github.com/Nihlus/ptouch-print
Compilation
Si vous avez de la chance, la compilation va se dérouler sans souci ainsi :
usr@usr-pc:~$ cd ptouch-print usr@usr-pc:~$ ./autogen.sh usr@usr-pc:~$ ./configure --prefix=/usr usr@usr-pc:~$ make usr@usr-pc:~$ sudo checkinstall
- Répondre oui (y) à la question :
Should I create a default set of package docs? [y]: y
- Saisir quelques mots de présentation
- Lorsque checkinstall indique :
This package will be built according to these values: 0 - Maintainer: [ root@vous ] 1 - Summary: [ La Brother p-touch D450VP est une petite étiqueteuse destinée à l'impression thermique d'étiquettes bicolores sur rubans laminés ou tissus de 3,5 à 18 mm de large. Ce paquet permet de l'utiliser sous Ubuntu. Il est dû à Dominic Radermacher. ] 2 - Name: [ ptouch ] 3 - Version: [ print ] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ amd64 ] 8 - Source location: [ ptouch-print ] 9 - Alternate source location: [ ] 10 - Requires: [ ] 11 - Recommends: [ ] 12 - Suggests: [ ] 13 - Provides: [ ptouch ] 14 - Conflicts: [ ] 15 - Replaces: [ ] 16 - Prerequires: [ ] Enter a number to change any of them or press ENTER to continue:
- Saisir la valeur 3
Enter a number to change any of them or press ENTER to continue: 3 Enter new version:
- Saisir un numéro de version, par exemple 1.3.2
Et voilà le travail :
This package will be built according to these values: 0 - Maintainer: [ root@vous ] 1 - Summary: [ La Brother p-touch D450VP est une petite étiqueteuse destinée à l'impression thermique d'étiquettes bicolores sur rubans laminés ou tissus de 3,5 à 18 mm de large. Ce paquet permet de l'utiliser sous Ubuntu. Il est dû à Dominic Radermacher. ] 2 - Name: [ ptouch ] 3 - Version: [ 1.3.2 ] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ amd64 ] 8 - Source location: [ ptouch-print ] 9 - Alternate source location: [ ] 10 - Requires: [ ] 11 - Recommends: [ ] 12 - Suggests: [ ] 13 - Provides: [ ptouch ] 14 - Conflicts: [ ] 15 - Replaces: [ ] 16 - Prerequires: [ ] Enter a number to change any of them or press ENTER to continue:
- Il n'y a plus qu'à appuyer sur entrée
Installing with make install...
Vous devriez être désormais capable d'imprimer avec votre étiqueteuse :
usr@usr-pc:~$ sudo ptouch-print --text "Ma première étiquette !"
En cas de problème lors de la compilation
Lorsqu'on utilise une application créée par un particulier, il est souvent nécessaire d'adapter l'installation, notamment aux changements de version d'Ubuntu : il n'y a pas un collectif de programmateurs qui peuvent adapter les paquets en temps réel. Toutefois avec quelques recherches le problèmes se résolvent et l'étiqueteuse fonctionne. Voici quelques "recettes" mises au point après avoir passé le retour des erreurs dans le moteur de recherche
Avec Ubuntu 20.04 (Focal)
Si jamais configure ou autogen.sh rencontrent des difficultés (ils le diront), les manipulations suivantes ont permis de régler le problème sous une Ubuntu 20.04 (on suppose que le terminal est ouvert dans le répertoire cloné ptouch-print)
usr@usr-pc:~$ cp /usr/share/automake-1.16/missing ../ (à adapter à votre version d'automake) usr@usr-pc:~$ cp config.rpath ../ usr@usr-pc:~$ aclocal usr@usr-pc:~$ autoconf usr@usr-pc:~$ autoheader usr@usr-pc:~$ automake --add-missing
puis :
usr@usr-pc:~$ ./autogen.sh usr@usr-pc:~$ ./configure --prefix=/usr usr@usr-pc:~$ make usr@usr-pc:~$ sudo checkinstall
Avec Ubuntu 21.04 (Hirsute Hippo)
Difficulté rencontrée avec libusb pourtant installé : la difficulté a été contournée en téléchargeant manuellement les paquets. La compilation affiche l'erreur suivante :
E: Impossible de trouver le paquet libusb-1.0-dev E: Impossible de trouver de paquet correspondant à l'expression rationnelle « libusb-1.0-dev »
La difficulté a été contournée en téléchargeant manuellement les paquets libusb-dev_0.1.12-32_amd64.deb et :
sudo dpkg -i libusb-1.0-0-dev_1.0.23-2build1_amd64.deb
Avec Ubuntu 23.10 (Mantic)
Erreur relative à gettext se traduisant par exemple par :
'AM_GLIB_GNU_GETTEXT' not found in library
ou
cannot stat ‘t-bg.gmo’: No such file or directory
Erreur résolue par l'installation du paquet gettext :
sudo apt install gettext
sudo dpkg -i /home/usr/Téléchargements/libglib2.0-bin_2.76.1-1_amd64.deb sudo apt-get -f install
Avec Ubuntu 24.04 LTS ("Noble Numbat")
Erreur liée à la version de la bibliothèque libusb-dev qui provoque de la part de .configure une bordée de jurons :
checking for libusb-1.0/libusb.h... no configure: error: libusb headers missing - maybe you need to install package libusb-dev or libusb-devel?
L'erreur se résout en installant le paquet libusb-1.0-0-dev :
$ sudo apt install libusb-1.0-0-dev
Configuration : Ajout d'une règle udev
sudo ? mais pourquoi sudo ? Essayez sans :
usr@usr-pc:~$ ptouch-print --text "Ma première étiquette !" PT-D450 found on USB bus 1, device 30 libusb_open error :LIBUSB_ERROR_ACCESS
Que se passe-t-il ? L'étiqueteuse est attribuée à l'utilisateur root, pas à l'utilisateur courant. Une petite règle udev va régler tout ça.
Identifiants USB
Première étape : repérer les identifiants de l'étiqueteuse
Le plus simple pour repérer les caractéristiques de l'étiqueteuse : commencer par la débrancher puis la rebrancher. Saisir alors :
usr@usr-pc:~$ find /dev/bus/usb/ ! -type d -mmin -5 /dev/bus/usb/001/032
Cette commande va afficher la liste des périphériques branchés depuis moins de 5 mn. Si vous vous débrouillez bien il n'y en aura qu'un : l'étiqueteuse ! On peut alors utiliser udevadm pour afficher les caractéristiques de la machine (à adapter selon les retours de find) :
usr@usr-pc:~$ udevadm info /dev/bus/usb/001/032 | grep -E "VENDOR|PRODUCT" E: PRODUCT=4f9/2073/100 E: ID_VENDOR=Brother E: ID_VENDOR_ENC=Brother E: ID_VENDOR_ID=04f9 E: ID_VENDOR_FROM_DATABASE=Brother Industries, Ltd
idVendor est donc 04f9 et idProdut est donc 2073 (et pas 4f9 !)
Création de la règle udev
On peut alors créer une règle udev.
On commence par vérifier qu'une règle portant le nom envisagé n'existe pas déjà (peu probable mais par principe, on vérifie) :
usr@usr-pc:~$ if [[ -f "/etc/udev/rules.d/41-brother-ptouch.rules" ]]; then echo "Changer de nom"; else echo "Vous pouvez utiliser ce nom de fichier"; fi
Si le retour est "Changer de nom", ben changez le nom. Peu importe lequel, il est cependant conseillé de respecter la syntaxe en commençant par un numéro (ordre d'exécution des règles) suivi d'un tiret et de ne pas faire comme dans l'exemple qui a pris 41 comme numéro d'ordre. Commencer à 50 :
sudo echo 'SUBSYSTEM=="usb",ATTRS{idVendor}=="04f9",ATTRS{idProduct}=="2073",GROUP="users",MODE="0666"' > /etc/udev/rules.d/41-brother-ptouch.rules
Ou bien, si
bash: /etc/udev/rules.d/41-brother-ptouch.rules: Permission non accordée
Essayer la méthode alternative :
echo 'SUBSYSTEM=="usb",ATTRS{idVendor}=="04f9",ATTRS{idProduct}=="2073",GROUP="users",MODE="0666"' > 41-brother-ptouch.rules sudo mv 41-brother-ptouch.rules /etc/udev/rules.d/
Attention à bien respecter la syntaxe des guillemets et apostrophes. Dans users mettre un group auquel vous appartenez (cat /etc/group).
cat /etc/group | grep $USER adm:x:4:syslog,utilisateur1,utilisateur2 cdrom:x:24:utilisateur1,utilisateur2 sudo:x:27:utilisateur1,utilisateur2 dip:x:30:utilisateur1,utilisateur2 plugdev:x:46:utilisateur1,utilisateur2 users:x:100:utilisateur1,utilisateur2 lpadmin:x:114:utilisateur1,utilisateur2 utilisateur1:x:1000:
Rechargez les règles udev (ou redémarrez votre système) :
sudo udevadm control --reload
Et là tout va bien :
usr@usr-pc:~$ ptouch-print --text "Ma première étiquette !"
UTILISATION
Syntaxe
ptouch-print [options] <paramètres d'impression>
options
- –font <nom police> utiliser une police spécifique
- –font <fichier> utiliser un fichier de police <fichier>
- –writepng <fichier> au lieu d'imprimer sur l'imprimante, la sortie d'impression est envoyée dans un fichier png. Fonctionne uniquement pour le texte (paramètre –text) et accepte un seul et unique paramètre de texte
- –help pour afficher l'aide
paramètres d'impression
- –image <fichier> imprime le fichier d'image passé en paramètre. Format noir et blanc png impératif.
- –text <texte> imprime 1 à 4 lignes de textes. Si le texte contient des espaces, utiliser des guillemets anglais "". Lorsqu'il y a plusieurs lignes, entourer le texte de chaque ligne par des guillemets, chaque groupe étant séparé par un espace. Ex. : –text "ligne 1" "ligne 2" "ligne 3"
- –cutmark imprime une marque de découpe sur le ruban.
- –fontsize fixe manuellement (pas automatique, qui est par défaut le plus grand possible compte tenu du nombre de lignes et de la hauteur du ruban) la taille de la police.
- –pad <n> ajoute n pixels de marge (espaces blancs).
Exemples
usr@usr-pc:~$ ptouch-print --text "Texte sur une seule ligne" usr@usr-pc:~$ ptouch-print --text "Première ligne" "Deuxième ligne" "Troisième ligne" usr@usr-pc:~$ ptouch-print --text "Etiquette de test" --writepng EtiquetteDeTest.png usr@usr-pc:~$ ptouch-print --pad 4 --text "Texte précédé de 4 pixels de marge" usr@usr-pc:~$ ptouch-print --text "Un texte suivi d'une image" --image image.png usr@usr-pc:~$ ptouch-print --help usr@usr-pc:~$ ptouch-print --font "Ubuntu:bold" --fontsize 23 --text "Texte Ubuntu gras, 23 pixels" usr@usr-pc:~$ ptouch-print --text "Etiquette 1" --cutmark --text "Etiquette 2"
Voir aussi
- git alternatif : https://github.com/Nihlus/ptouch-print/blob/master/README
Contributeurs principaux : Zococo