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.
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.
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
puis les dépendances de ptouch-print sous Ubuntu :
libusb-dev libgd-dev autopoint
usr@usr-pc:~$ sudo apt install libusb-dev libgd-dev autopoint
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
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
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
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
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
Should I create a default set of package docs? [y]: y
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:
Enter a number to change any of them or press ENTER to continue: 3 Enter new version:
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:
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 !"
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
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
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
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
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
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.
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 !)
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 !"
ptouch-print [options] <paramètres d'impression>
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"
Contributeurs principaux : Zococo