Java stampare etichette con codice a barre
Domanda
Can punto qualcuno nella giusta direzione per la stampa di codici a barre utilizzando Java? Posso utilizzare la libreria barbecue ( http://barbecue.sourceforge.net/ ) per generare loro i codici a barre come immagini, ma ho bisogno di un modo per mettere l'immagine (e la didascalia leggibile) in un modello di documento Avery per la stampa.
Soluzione
La libreria iText supporta praticamente ogni tipo di codice a barre che si possa immaginare. È possibile generare file PDF e sia salvarli o stamparli internamente.
Altri suggerimenti
Suggerisco utilizzando la libreria barcode4j invece di barbecue per 2 motivi:
-
oggetti Griglia per codice a barre sono inutilmente accoppiati ai componenti Java UI (classe esempio barre estende JComponent). Questo crea dipendenze non necessarie se non viene utilizzato l'interfaccia utente Java, per esempio per batch o riga comandi applicazioni basate. Essi dovrebbero hanno usato l'aggregazione piuttosto che eredità se volevano usare le loro classi di codici a barre con il Java UI.
-
Barcode4J sembra che è attualmente supportato - versione 2.0 rilasciata e data di copyright è il 2012
Poi si ha il problema di tradurre il codice a barre in un formato che la stampante capisce. Per questo suggerisco openlabelprint.org (che ho scritto!) - è un altro progetto open source che utilizza barcode4j e prevede:
-
servizi per definire una SVG layout di etichetta utilizzando (Scalable Vector Graphics - uno standard W3C aperto) e
-
rasterizzazione a una bitmap del SVG da barcode4j (e il layout dell'etichetta circostante in SVG) (openlabelprint applica le eccellenti librerie Apache SVG Batik Java per la rasterizzazione e per altri compiti SVG)
-
stampa del bitmap sulle stampanti Zebra utilizzando il loro linguaggio di basso livello ZPL. openlabelprint è dotato di un programma di utilità per convertire le bitmap png per ZPL e inviare questo alla stampante Zebra attraverso il sistema di stampa standard di Java. Anche openlabelprint fornisce le API per estendere per altri linguaggi di stampante se ZPL è supportato da alcune marche non-Zebra
Sono la stampa di codici a barre utilizzando Java, ma sto usando una stampante che hanno una funzione di pre-programmati per la stampa di codici a barre. Così sto solo dicendo quello che la stampante per stampare i codici e lo fa il resto. Se siete disposti a pagare per una stampante che potrebbe ti consente di risparmiare un po 'di tempo.
Questo può o non può essere utile a voi, ma ho pensato di parlarne.
Credo che si dovrà misurare la vostra pagina di etichette Avery con un righello e poi nel codice Java, si dovrà creare una lettera piena / A4 / qualunque pagina da stampare e offset l'immagine del codice a barre su quella pagina per l'appropriata posizione, sulla base di misurazioni con il righello.
Hai provato la stampa di immagine che avete ottenuto da "barbecue"?
Si dovrebbe cercare JZebra questo è un applet e un buon punto di partenza per voi, date un'occhiata al codice sorgente di Java.
http://code.google.com/p/jzebra/
Per zebra te questa semplice guida vi aiuterà. Su questo comandi Zebra
N
q609
Q203,26
B26,26,0,UA0,2,2,152,B,"777777"
A253,56,0,3,1,1,N,"JHON3:16"
A253,26,0,3,1,1,N,"JESUSLOVESYOU"
A253,86,0,3,1,1,N,"TEST TEST TEST"
A253,116,0,3,1,1,N,"ANOTHER TEST"
A253,146,0,3,1,1,N,"SOME LETTERS"
P1,1
sulle JZebra
var applet = document.jzebra;
if (applet != null) {
applet.append("N\n");
applet.append("q609\n");
applet.append("Q203,26\n");
applet.append("B26,26,0,UA0,2,2,152,B,\"777777\"\n");
applet.append("A253,56,0,3,1,1,N,\"JHON3:16\"\n");
applet.append("A253,26,0,3,1,1,N,\"JESUSLOVESYOU\"\n");
applet.append("A253,86,0,3,1,1,N,\"TEST TEST TEST\"\n");
applet.append("A253,116,0,3,1,1,N,\"ANOTHER TEST\"\n");
applet.append("A253,146,0,3,1,1,N,\"SOME LETTERS\"\n");
applet.append("P1,1\n");}
Avendo chiaro questo:
EPL è un comando per riga. Un comando inizia con un identificatore di comando, tipicamente una lettera, seguita da un elenco separato da virgole di parametri specifici del comando. È possibile cercare ognuno di questi comandi nella documentazione di programmazione EPL2. Ecco una versione in lingua inglese dei comandi nell'esempio di cui sopra.
- L'invio di un ritorno a capo iniziale garantisce che qualsiasi precedente borked il comando è presentata.
- [N] Cancella tampone l'immagine. Questo è un passo importante e generalmente dovrebbe essere il primo comando in qualsiasi documento EPL; chissà quale stato del lavoro precedente ha lasciato la stampante in.
- [q] Impostare la larghezza dell'etichetta a 609 punti (3 pollici etichetta x 203 dpi = Larghezza 609 punti).
- [Q] Impostare l'altezza etichetta per 203 punti (etichetta 1 pollice) con un 26 gap punto tra le etichette. (La stampante probabilmente auto- senso, ma questo non fa male.)
- [B] Disegnare un codice a barre UPC-A con valore "777777" alla x = 26 punti (1/8 in), y = 26 punti (1/8 in) con una barra stretta larghezza di 2 punti e rendono 152 punti (3/4 in) di altezza. (Il origine del sistema di coordinate etichetta è l'angolo superiore sinistro dell'etichetta.)
- [A] Disegnare il testo "JESUSLOVESYOU" a x = 253 punti (3/4 in), y = 26 punti (1/8 pollici) in font di stampa "3", normale scala orizzontale e verticale, e nessun effetto fantasia bianco-su-nero.
Tutti Tha A linee che iniziano sono simili. 10. [P] Stampare una copia di un'etichetta.