socket e connessione a printer server

Ciao,

Dovrei stampare dei barcode su una stampante.

Fino ad oggi generavo dei barcode in pdf e stampavo con una laser su dei fogli di etichette in formato A4 con grande spreco di etichette. Sto provando una stampante zebra per etichette. I tecnici della zebra mi hannod etto che per stampare basta aprire un socket e scrivere sul socket in questione la stringa correttamente formattata.

Ora il problema credo risieda nel printer server, che siccome ha 3 porte parallele p1 p2 e p3, non so come scrivere la sintassi.

<?php
$fp = fsockopen ("192.168.1.144/P1", 515, $errno, $errstr, 30);
?>

In questo modo da un errore di connessione, se elimino il P1 avviene la connessione ma con FPUTS non accade nulla ... chiaramente.

Idee o suggerimenti ?

inviato 10 anni fa
Lokki
X 0 X

ma questa stampante ha una connessione ethernet? collegata alla rete? Non credo servano le porte parallele per questo tipo di comunicazione.

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

La stampante ha un parallela e una seriale.

La parallela la ho collegata a una delle parallele del printer server.

???

risposto 10 anni fa
Lokki
X 0 X

PHP su Windows?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

linux fedora core 4

risposto 10 anni fa
Lokki
X 0 X

Ciao :bye:

Hai risolto il tuo problema? Visto che ci sei mi puoi spiegare a grandi linea come funziona questo socket? devi mandargli una stringa EPL2?

Grazie!

risposto 10 anni fa
Marco Dario
X 0 X

Alla fine ho usato un altro sistema, tramite shell_exec ho eseguito il comando di stampa in questo modo

shell_exec('sudo lp /tmp/stampa.zpl');

dove stampa.zpl era un file di testo in linguaggio zpl per stampanti zebra

Per far funzionare il tutto ho dovuto configurare la stampante come stampante ascii sul server e indirizzarla sul printer server.

Funziona benissimo e ho il vantaggio di poter gestire la coda di stampa in modo pi pulito che con il socket.

La tua domanda un p generica ...

risposto 10 anni fa
Lokki
X 0 X

Ecco..

La mia domanda era:

Come posso stampare un file jpeg (che non altro che il codice a barre) mandando il comando alla stampante zebra usando il liguaggio che mi hai appena detto?

Praticamente inserendo dei dati in una pagina mi crea un'altra pagina con il S/N del prodotto i dati che ho inserito prima e il jpeg del serial number.

Come faccio a farlo stampare corretamente sulla stampante visto che la stampante non ha il driver per linux?

grazie!!

Marco

risposto 10 anni fa
Marco Dario
X 0 X
<?php
$string='^XA
^PW831^LH0,0
^AEN,28,15
^FO10,10
^FB650,3
^FD'.$descrizione.'^FS
^FO10,85
^BY3,2.0
^B3N,N,90,Y
^FD'.$codice.'^FS
^XZ
';
$handle = fopen("/tmp/stampa.zpl", "a+");
fwrite($handle, $string);
$str=shell_exec('sudo lp /tmp/stampa.zpl');
$str=shell_exec('sudo rm /tmp/stampa.zpl');
?>

Questo lo script che uso, stampa un etichetta 12x4 con la descrizione il codice a barre relativo a $codice e il codice sotto il codice a barre.

Fai riferimento al manuale zpl per interpretare la stringa zpl.

$descrizione e $codice sono la descrizione articolo e codice dello stesso.

Devi configurare la stampante zebra con cups come generica stampante di testo.

Il codice a barre generato come immagine non ha senso conviene farlo generare alla stampante con lo zpl.

Se invece devi inserire un logo allora un'altra cosa ma decisamente pi complesso.

Ti consiglio di reperire qualche tool per creare in modo grafico l'etichetta e ottenere il codice zpl corrispondente tipo bar-one http://www.zebra.com/id/zebra/na/en/index/products/software/label_design_software/bar_one_5_1_mysap.html

Ciao :bye:

risposto 10 anni fa
Lokki
X 0 X

Molto molto chiaro! O0

Grazie mille!!! ^-^

risposto 10 anni fa
Marco Dario
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda