Configuration d'une imprimante d'étiquettes XPrinter sous Linux dans VMware Workstation

Un exemple de configuration sur CentOS sans shell graphique ; par analogie, vous pouvez configurer sur n'importe quel système d'exploitation Linux.

Je résous un problème spécifique : je dois imprimer des étiquettes avec du texte arbitraire à l'aide d'un modèle PHP. Comme vous ne pouvez pas compter sur une connexion Internet stable lors de l'événement et que la plupart des tâches d'automatisation chevauchent le site Web, nous avons décidé de travailler avec une machine virtuelle sur VMware.

XPrinter convient également aux tâches de marquage ; l'installation sous Windows est beaucoup plus simple. J'ai opté pour le modèle XP-460B avec une largeur d'étiquette allant jusqu'à 108 mm.

Configuration d'une imprimante d'étiquettes XPrinter sous Linux dans VMware Workstation

Comme j'installe rarement Linux et y connecte des périphériques, j'ai recherché des manuels de configuration prêts à l'emploi et j'ai réalisé que le moyen le plus simple de connecter une imprimante consiste à utiliser des tasses. Je n'ai pas pu connecter l'imprimante en USB, aucune manipulation suivant les conseils des manuels n'a aidé, j'ai juste planté la machine virtuelle plusieurs fois.

  • Téléchargez les pilotes sur le site Web du fabricant xprintertech.com, ils sont regroupés dans une seule archive pour Windows, Mac et Linux.

    Les pilotes sont publiés sur le site Web pour une série d'appareils, dans mon cas Pilotes d'imprimante d'étiquettes 4 pouces. Il s'avère que le XP-460B a déjà été abandonné ; j'ai déterminé à quelle série il appartient en me basant sur le fil d'Ariane d'un modèle similaire, le XP-470B.

  • Installez l'imprimante sous Windows, activez le partage

    Configuration d'une imprimante d'étiquettes XPrinter sous Linux dans VMware Workstation

  • Pour Linux, l'archive contient 1 fichier 4BARCODE. Il s'agit d'un fichier « 2 en 1 », un script bash avec une archive tar qui se décompresse et copie les pilotes dans cups. Dans mon cas, bzip2 est nécessaire pour le déballage (pour la série 80 mm, un archiveur différent est utilisé)
    yum install cups
    yum install bzip2
    chmod 744 ./4BARCODE
    sh ./4BARCODE
    service cups start
    
  • Ensuite, vous devez ouvrir localhost:631 dans le navigateur, pour plus de commodité, je configure un paramètre pour ouvrir à partir du navigateur sous Windows. Editez /etc/cups/cupsd.conf :
    Listen localhost:631 меняем на Listen *:631
    <Location />
      Order allow,deny
      Allow localhost
      Allow 192.168.1.*  
    </Location>
    <Location /admin>
      Order allow,deny
      Allow localhost
      Allow 192.168.1.*
    </Location>
    

    Ajoutez le port 631 au pare-feu (ou iptables) :

    firewall-cmd --zone=public --add-port=631/tcp --permanent
    firewall-cmd --reload
    
  • On ouvre le lien dans le navigateur en utilisant l'IP de la machine virtuelle, dans mon cas 192.168.1.5:631/administrateur

    Ajoutez une imprimante (vous devez entrer root et mot de passe)

    Configuration d'une imprimante d'étiquettes XPrinter sous Linux dans VMware Workstation

  • Il y a 2 options que j'ai réussi à configurer, via le protocole LPD et via samba.
    1. Pour vous connecter via le protocole LPD, vous devez activer le service dans Windows (Activer ou désactiver les composants Windows) et redémarrer l'ordinateur.

      Configuration d'une imprimante d'étiquettes XPrinter sous Linux dans VMware Workstation
      Dans les paramètres de cups, saisissez lpd://192.168.1.52/Xprinter_XP-460B, où 192.168.1.52 est l'IP de l'ordinateur sur lequel l'imprimante est installée, Xprinter_XP-460B est le nom de l'imprimante dans les paramètres de partage Windows

      Configuration d'une imprimante d'étiquettes XPrinter sous Linux dans VMware Workstation
      Sélectionnez le pilote 4BARCODE => 4B-3064TA

      Configuration d'une imprimante d'étiquettes XPrinter sous Linux dans VMware Workstation
      Nous ne sélectionnons ni n’enregistrons rien dans les paramètres ! J'ai essayé d'ajuster la taille de l'étiquette, mais l'imprimante ne fonctionne pas pour une raison quelconque. La taille de l'étiquette peut être spécifiée dans le travail d'impression.

      Configuration d'une imprimante d'étiquettes XPrinter sous Linux dans VMware Workstation
      Nous essayons d'imprimer une page de test - c'est fait !

    2. Deuxième option. Vous devez installer samba, démarrer, redémarrer cups, puis un nouveau point de connexion apparaîtra dans cups, dans les paramètres entrez une ligne comme smb://user :[email protected]/Xprinter_XP-460B. Où l'utilisateur est un utilisateur sous Windows, l'utilisateur doit avoir un mot de passe défini, l'autorisation ne fonctionne pas avec un mot de passe vide.

Lorsque tout s'est bien passé et que l'imprimante a imprimé une page de test, les tâches peuvent être envoyées via la console :

lpr -P Xprinter_XP-460B -o media=Custom.100x102mm test.txt

Dans cet exemple, l'étiquette a des dimensions de 100x100 mm, 2 mm ont été retenus expérimentalement. La distance entre les étiquettes est de 3 mm, mais si vous réglez la hauteur sur 103 mm, le ruban se déplace, ce qui rend difficile l'arrachage de l'étiquette. L'inconvénient du protocole LPD est que les travaux sont envoyés comme vers une imprimante classique, le format ESC/P0S n'est pas envoyé pour l'impression et le capteur ne calibre pas les étiquettes.

Ensuite, vous pouvez travailler avec l'imprimante via php. Il existe des bibliothèques pour travailler avec des cups, c'est plus facile pour moi d'envoyer une commande à la console via exec();

Comme ESC/P0S ne fonctionne pas, j'ai décidé de créer des modèles en pdf en utilisant la bibliothèque tFPDF

require_once($_SERVER["DOCUMENT_ROOT"] . "/tfpdf/tfpdf.php");
$w = 100;
$h = 100;
$number = 59;
$pdf = new tFPDF('P', 'mm', [$w, $h]);
$pdf->SetTitle('Information');
$pdf->AddFont('Font', 'B', $_SERVER["DOCUMENT_ROOT"] . '/fonts/opensans-bold.ttf', true);
$pdf->SetTextColor(0,0,0);
$pdf->SetDrawColor(0,0,0);

$pdf->AddPage('P');
$pdf->SetDisplayMode('real','default');
$pdf->Image($_SERVER["DOCUMENT_ROOT"]. '/images/logo_site.png',$w - 4 - 28,$h - 13,28.1,9.6,'');

$pdf->SetFontSize(140);
$pdf->SetXY(0,24);
$pdf->Cell($w,$h - 45, $number,0,0,'C',0);

$pdf->SetFontSize(1);
$pdf->SetTextColor(255,255,255);
$pdf->Write(0, $number);

$pdf->Output('example.pdf','I');

exec('php label.php | lpr -P Xprinter_XP-460B -o media=Custom.100x102mm');

Configuration d'une imprimante d'étiquettes XPrinter sous Linux dans VMware Workstation
Prêt. J'ai passé 2 week-ends à le monter, j'espère que cela sera utile à quelqu'un.

Source: habr.com

Ajouter un commentaire