{{tag>Focal Hirsute Mantic matériel imprimante Brother}} ---- ====== 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 [[:sudo|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|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 Attention : lorsque checkinstall vous fait saisir les informations d'installation, ne pas oublier d'inscrire un nombre pour le numéro de version, la valeur par défaut - du texte - n'est pas acceptée. Il faut donc : * 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... sudo make install peut être utilisé à la place de checkinstall mais pour le suivi des paquets, checkinstall est plus adapté. C'est plus simple à désinstaller. 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 Cette installation a rencontré des problèmes de version MAIS un sudo apt-get -f install a permis de tout remettre d'aplomb ... et de finaliser la compilation de l’utilitaire : voir ce [[https://forum.ubuntu-fr.org/viewtopic.php?pid=22469678#p22469678|post]] sur le forum. ===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 J'ai également installé manuellement le paquet déjà installé libglib2.0-bin mais je ne sais pas si c'était utile. 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 Si vous voulez aller vite, vous pouvez essayer avec idVendor=="04f9" et idProduct=="2073". Avec un peu de chance ça fonctionnera chez vous, sinon il faut chercher un peu (pas trop, rassurez-vous). 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). Pour lister les groupes auxquels vous appartenez : 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] ===options=== * --font utiliser une police spécifique * --font utiliser un fichier de police * --writepng 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 imprime le fichier d'image passé en paramètre. Format noir et blanc png impératif. * --text 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 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 ===== * Site : https://familie-radermacher.ch/dominic/computer/p-touch2430pc/ * git alternatif : https://github.com/Nihlus/ptouch-print/blob/master/README ---- //Contributeurs principaux : [[utilisateurs:zococo|Zococo]]