Een XPrinter-labelprinter instellen op Linux in VMware Workstation
Een voorbeeld voor het instellen op CentOS zonder een grafische shell; naar analogie kunt u het op elk Linux-besturingssysteem instellen.
Ik ben een specifiek probleem aan het oplossen: ik moet labels met willekeurige tekst afdrukken met behulp van een sjabloon uit PHP. Omdat je op het evenement niet kunt rekenen op een stabiele internetverbinding en de meeste automatiseringstaken overlappen met de website, hebben we besloten om met een virtuele machine op VMware te werken.
XPrinter is ook geschikt voor het markeren van taken; installatie onder Windows is veel eenvoudiger. Ik koos voor het XP-460B-model met een labelbreedte tot 108 mm.
Omdat ik zelden Linux installeerde en er apparaten op aansloot, zocht ik naar kant-en-klare installatiehandleidingen en besefte ik dat de eenvoudigste manier om een printer aan te sluiten via cups is. Ik kon de printer niet via USB aansluiten, geen manipulaties volgens het advies in de handleidingen hielpen, ik liet de virtuele machine gewoon meerdere keren crashen.
Download stuurprogramma's van de website van de fabrikant xprintertech.com, ze komen in één archief voor Windows, Mac en Linux
Voor een reeks apparaten worden in mijn geval stuurprogramma's op de website geplaatst Stuurprogramma's voor 4-inch labelprinters. Het blijkt dat de XP-460B al niet meer leverbaar is; ik heb uitgezocht tot welke serie hij behoort op basis van de broodkruimels van een vergelijkbaar model, de XP-470B.
Installeer de printer in Windows, schakel delen in
Voor Linux bevat het archief 1 bestand 4BARCODE. Dit is een “2 in 1” bestand, een bash-script met een tar-archief dat zichzelf uitpakt en de stuurprogramma's naar cups kopieert. In mijn geval is bzip2 nodig voor het uitpakken (voor de 80 mm-serie wordt een andere archiver gebruikt)
yum install cups
yum install bzip2
chmod 744 ./4BARCODE
sh ./4BARCODE
service cups start
Vervolgens moet je openen localhost:631 in de browser, voor het gemak maak ik een instelling om te openen vanuit de browser in Windows. Bewerk /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>
We openen de link in de browser met behulp van het IP-adres van de virtuele machine, in mijn geval 192.168.1.5:631/beheerder
Voeg een printer toe (je moet root en wachtwoord invoeren)
Er zijn 2 opties die ik heb weten te configureren, via het LPD-protocol en via samba.
Om verbinding te maken via het LPD-protocol, moet u de service in Windows inschakelen (Windows-componenten in- of uitschakelen) en de computer opnieuw opstarten.
Voer in de cups-instellingen lpd://192.168.1.52/Xprinter_XP-460B in, waarbij 192.168.1.52 het IP-adres is van de computer waarop de printer is geïnstalleerd, Xprinter_XP-460B de naam van de printer in de Windows-instellingen voor delen
Selecteer chauffeur 4BARCODE => 4B-3064TA
We selecteren of slaan niets op in de parameters! Ik heb geprobeerd het labelformaat aan te passen, maar de printer werkt om de een of andere reden niet. Het labelformaat kan worden opgegeven in de afdrukopdracht.
We proberen een testpagina af te drukken - klaar!
Tweede optie. Je moet samba installeren, cups starten en opnieuw opstarten, dan verschijnt er een nieuw verbindingspunt in cups, voer in de instellingen een regel in zoals smb://user:[e-mail beveiligd]/Xprinter_XP-460B. Wanneer de gebruiker een gebruiker is in Windows, moet de gebruiker een wachtwoord hebben ingesteld; autorisatie werkt niet met een leeg wachtwoord.
Wanneer alles gelukt is en de printer een testpagina heeft afgedrukt, kunnen opdrachten via de console worden verzonden:
In dit voorbeeld heeft het label de afmetingen 100x100 mm, waarbij experimenteel 2 mm is geselecteerd. De afstand tussen de labels is 3 mm, maar als je de hoogte instelt op 103 mm verschuift de tape, waardoor het lastig is om het label af te scheuren. Het nadeel van het LPD-protocol is dat opdrachten worden verzonden zoals naar een gewone printer, dat het ESC/P0S-formaat niet wordt verzonden om te worden afgedrukt en dat de sensor labels niet kalibreert.
Dan kun je via php met de printer werken. Er zijn bibliotheken om met cups te werken, het is voor mij gemakkelijker om een commando naar de console te sturen via exec();
Omdat ESC/P0S niet werkt, heb ik besloten om sjablonen in pdf te maken met behulp van de tFPDF-bibliotheek