2009-08-20 19 views
2

Kann jemand in die Schreibrichtung zeigen, um Barcode-Etiketten mit Java zu drucken? Ich kann die Barbecue-Bibliothek (http://barbecue.sourceforge.net/) verwenden, um sie als Bilder zu erzeugen, aber ich brauche eine Möglichkeit, das Bild (und die lesbare Beschriftung) in eine Avery-Dokumentvorlage zum Drucken zu bringen.Java-Barcode-Etiketten drucken

+0

Und wie genau kommen Sie von "Drucken ... mit Java" zu "Avery Dokumentvorlage"? –

Antwort

3

Die iText-Bibliothek unterstützt praktisch jede erdenkliche Art von Barcode. Sie können PDFs erstellen und entweder speichern oder intern drucken.

0

Haben Sie versucht, das Bild von "Barbecue" zu drucken?

+0

Ich kann es drucken, aber es gibt keine Möglichkeit, an einer bestimmten Stelle in einer Vorlage zu drucken (zumindest ist mir das bekannt). –

1

Ich denke, dass Sie Ihre Avery-Etikettenseite mit einem Lineal messen müssen und dann in Ihrem Java-Code müssen Sie eine vollständige Letter/A4/was auch immer Seite erstellen und Offset Ihr Barcode-Bild auf der Seite geeigneter Ort basierend auf Ihren Maßen mit dem Lineal.

+0

Sie Avery Unternehmen wird häufig verwendet, weil es eine Standardgröße ist. Diese Zahlen sollten irgendwo schon für dich notiert werden, aber in jedem Fall sollte das Messen funktionieren! – Karl

2

Ich drucke Barcodes mit Java, aber ich benutze einen Drucker, der eine vorprogrammierte Funktion zum Drucken von Barcodes haben. Ich sage dem Drucker nur, welche Codes gedruckt werden sollen und er erledigt den Rest. Wenn Sie bereit sind, für einen Drucker zu bezahlen, sparen Sie möglicherweise etwas Zeit.

Dies kann oder kann nicht nützlich für Sie sein, aber ich dachte, ich würde es erwähnen.

3

Ich schlage vor, die barcode4j Bibliothek statt Grill aus 2 Gründen mit:

  1. Barbecue Barcode-Objekte sind unnötig gekoppelt Java UI-Komponenten (zum Beispiel Barcode-Klasse erweitert JComponent). Dies erzeugt unnötige Abhängigkeiten, wenn die Java-UI nicht verwendet wird, z. für Batch- oder Befehlszeilen-basierte Anwendungen. Sie sollten Aggregation statt Vererbung verwendet haben, wenn sie ihre Barcode-Klassen mit der Java-Benutzeroberfläche verwenden wollten.

  2. Barcode4J sieht aus wie es derzeit unterstützt wird - Version 2.0 veröffentlicht und Copyright-Datum ist 2012

Dann Sie das Problem der Übersetzung des Barcodes in ein Format haben, das der Drucker versteht. Dazu schlage ich openlabelprint.org (was ich schrieb!) - es ist eine andere Open-Source-Projekt, das barcode4j verwendet und bietet:

  • Einrichtungen ein Etikettenlayout mit SVG (Scalable Vector Graphics zu definieren - eine offene w3c Standard) und

  • Rasterung in eine Bitmap der SVG von barcode4j (und dem umgebenden Etikettenlayout in SVG) (openlabelprint die ausgezeichneten Apache SVG Batik Java-Bibliotheken für die Rasterung als auch für andere SVG Aufgaben) gilt

  • drucken ng der Bitmap auf Zebra-Druckern mit ihrer ZPL-Low-Level-Sprache. openlabelprint verfügt über ein eingebautes Dienstprogramm, um PNG-Bitmaps in ZPL zu konvertieren und diese über das standardmäßige Java-Druckersystem an den Zebra-Drucker zu senden. Auch openlabelprint APIs bietet es auch für andere Druckersprachen zu erweitern, obwohl ZPL von einigen Nicht-Zebra-Marken unterstützt wird

0

Sie sollten versuchen, JZebra dies ist ein Applet, und ein guter Startpunkt für Sie, werfen Sie einen Blick auf die Java Quellcode.

http://code.google.com/p/jzebra/

Für Zebra Sie diese einfache Anleitung wird Ihnen helfen. Auf dieser Zebra-Befehle

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 

auf 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");} 

klar this Mit:

EPL ist ein Befehl pro Zeile. Ein Befehl beginnt mit einer Befehlskennung, typischerweise einem Buchstaben, gefolgt von einer durch Kommas getrennten Liste von Parametern, die für diesen Befehl spezifisch sind. Sie können jeden dieser Befehle in der Programmierdokumentation zu EPL2 nachschlagen. Hier ist eine englischsprachige Version der Befehle im obigen Beispiel.

  1. Das Senden eines ersten Zeilenvorschubs garantiert, dass alle vorherigen borked Befehle gesendet werden.
  2. [N] Löschen Sie den Bildpuffer. Dies ist ein wichtiger Schritt und sollte generell der erste Befehl in einem EPL-Dokument sein; Wer weiß, in welchem ​​Status der vorherige Job den Drucker verlassen hat.
  3. [q] Legen Sie die Etikettenbreite auf 609 Punkte (3 Zoll Etikett x 203 dpi = 609 Punkte breit).
  4. [Q] Stellen Sie die Etikettenhöhe auf 203 Punkte (1 Zoll Etikett) mit einem 26 Punktabstand zwischen den Etiketten ein. (Der Drucker wird wahrscheinlich automatisch Sinn, aber das tut nicht weh.)
  5. [B] Zeichnen Sie einen UPC-A Barcode mit Wert "777777" bei x = 26 Punkte (1/8 Zoll), y = 26 Punkte (1/8 in) mit einem schmalen Balken Breite von 2 Punkten und machen es 152 Punkte (3/4 in) hoch. (Die Herkunft des Etiketts Koordinatensystem ist die obere linke Ecke des Etiketts.)
  6. [A] Zeichnet den Text "JESUSLOVESYOU" bei x = 253 Punkten (3/4 Zoll), y 26 Punkte = (1/8 in) in Drucker Schriftart "3", normale horizontale und vertikale Skalierung, und keine Phantasie weiß-auf-Schwarz-Effekt.

Alle tha A Startlinien sind ähnlich. 10. [P] Drucken Sie eine Kopie eines Etiketts.