Java Barcode-Druckstudio + Verwaltung - Worauf muss ich achten?

CPU

Lieutenant
Registriert
Jan. 2006
Beiträge
704
Hallo,

ich baue mir gerade mit Java eine Verwaltung für meine Bücher. Das läuft so ab, dass man das Buch eingibt und dann sich einen Aufkleber ausdruckt mit Barcode und Nummer drauf.

Meine erste(n) Frage beschäftigt sich mit dem Barcode: Kann ich den einfach mit einem Laser-Drucker auf das Etikett draufdrucken? Kann der Barcode dannach noch erkannt werden von einem Scanner? (Ich habe im Internet gelesen, dass man Spezialdrucker benötigt und dass die Druckqualität eines Laserdruckers nicht ausreicht).

Nun muss ich mir ja einen Barcodescanner besorgen. Ich habe mir diese ausgesucht. Wie greife ich aus Java nun darauf zu? Ich benötige sicherlich das JNI, aber wie mache ich das, dass ich auf den Scanner zugreifen kann und was kann ich überhaupt auslesen?


Danke für's lesen,
CPU
 
Das mit dem Drucken sollte funktionieren. Der Scanner ist dann im Prinzip die Tastatur. Wichtig ist, dass Du den Focus auf dein "Eingabefeld" legst. Der Scanner MUSS nach dem Code ein "Enter" mitsenden. Das sollte sich aber einstellen lassen. Oft ist ein Handbuch bei, in dem die internen Barcodes abgeblidet sind. Zum Einstellen/Umstellen der Funktionsweise, muss nur der entsprechende Code gescannt werden.
 
Zuletzt bearbeitet:
mr.Gr3y schrieb:
Das mit dem Drucken sollte funktionieren. Der Scanner ist dann im Prinzip die Tastatur.
Da bin ich aber froh :):).

mr.Gr3y schrieb:
Wichtig ist, dass Du den Focus auf dein "Eingabefeld" legst.
Okay, das hatte ich mir schon fast so gedacht ... Bar mir wäre es wichtig, wie ich überhaupt auf den Scanner (USB-Port) zugreifen kann! Muss ich irgendeine Verbindung öffnen und dann daraus bytes lesen, oder wie geht das?

mr.Gr3y schrieb:
Oft ist ein Handbuch bei, bei der interne Barcodes abgeblidet sind. Zum Einstellen muss nur der entsprechende Code gescannt werden.
Irgendwie verstehe ich das gerade nicht so ...

Danke für die Antwort,
CPU :)
 
die barcode scanner die ich kenne fungieren als hid, dh sie tippen wenn etwas eingescannt wird einfach die zahlen samt einem return am ende ein.
du musst also nur darauf achten das in deine textbox während des scannen den fokus hat
 
Angesichts dessen, dass es Lösungen gibt, bei denen man per Webcam mittels Flash Barcodes liest sollte die Qualität eines normalen Druckers bei Weitem ausreichen (außer du hast vor irgendwelche absoluten Minilabels zu bauen).
 
die barcode scanner die ich kenne fungieren als hid, dh sie tippen wenn etwas eingescannt wird einfach die zahlen samt einem return am ende ein.
Das wäre ja super :) Irgendwie könnte man dann den Code aber sicher auch abfangen, wenn der Fokus gerade nicht auf einem Textfeld liegt, oder ...?
außer du hast vor irgendwelche absoluten Minilabels zu bauen
So groß wie auf jeder beliebigen Müslipackung der EAN-Code.

Danke :D:D
 
Jop, es muss nichts extra installiert werden. Scanner wird als HID Device erkannt.

Hab es oben "verständlicher" gemacht.
^^Damit meinte ich, dass Du zum Einstellen des Scanners einfach der gewünschte Code für die Funktionsweise eingescannt wird. Wenn Du z.B kein "Enter" am Ende haben willst, oder den zu lesenden Code (z.B. UAN/EAN) einstellen willst oder das Gerät "resettet" werden soll.
 
Hallo,

wir drucken Etiketten auf Thermodrucken aus, die Qualität ist teilweise relativ schlecht, aber Barcodes lassen sich trotzdem gut lesen.

Also Barcodetyp solltest du Code 128C nutzen, wenn du als Identifikation der Bücher eine Zahl hast (ID in der Datenbank).
Ausserdem hast du eine Prüfsumme, sodass der Barcode zu 99,9% entweder richtig oder garnicht ankommt.

Den Barcodeleser gibts in folgenden Ausführungen:
- HID, wird als Tastatur erkannt, Focus muss auf dem Eingabefeld liegen, bzw darf auf keinem Feld liegen (aber auf dem Fenster), dann kannst du das abfangen. Ist aber sehr fehleranfällig!
- Seriell, du bekommst die Daten dann z.B. per COM1. Du wartest einfach bis das Barcode-Endezeichen ankommt, z.B. ein Zeilenumbruch, und alles was vorher kam ist dein Barcode.
- USB mit virtuellem seriellem Anschluss. Siehe seriell.
Empfehlen würde ich die USB oder seriell. Sollte in Java auch einfach verwendbar sein.

Wenn die die Identifikation des Buches reicht, warum nutzt du nicht den ohnehin vorhandenen ISBN Code, der auf jedem Buch gedruckt ist?

Was du noch machen kannst ist Informationen aus einer ISBN Datenbank holen, Wikipedia müsste so eine (unvollständige) bereitstellen, wenn ich richtig weiss.
Heisst wenn du ein Buch anlegst speicherst du dir die ISBN Nummer mit ein, und kannst dann zu dem Buch weitere Informationen automatisch aus dem Internet holen.

Gruß,
David.
 
Hallo,

und erst einmal Danke für die vielen Antworten!

Also, ich wollte den EAN-13-Code nehmen (habe ich am meisten Erfahrung mit ...). Und ich werde auch andere Sachen beschriften, als nur Bücher ... außerdem würde es mich nerven, dass ich immer im Internet sein muss, um meine Barcodes zu lesen ...

Was ist das hier für ein Barcode-Scanner: http://cgi.ebay.de/USB-BARCODE-SCAN...EGER%c4T_W0QQitemZ390079409119QQcmdZViewItem?

So wie ich das verstanden habe, soll ich einen seriellen/usb-pseudo-seriellen Barcode leser verwenden. Aber das mit dem Zugriff von Java aus auf USB ist so eine Sache ... sehr schwer (http://today.java.net/pub/a/today/2006/07/06/java-and-usb.html/http://www.ibm.com/developerworks/linux/library/j-usb.html).

CPU
 
Der Scanner bei eBay ist ein HID, steht auch drin.
Wenn USB, dann nimm einen der einen seriellen Port emuliert, heisst für dein Java Programm sieht nur einen normalen seriellen Port.

Der EAN ist ja eigentlich nicht dafür gedacht.

Barcode typ wechseln ist eigenltich sehr einfach.
Du musst nur den Algorytmus zur Barcode Erstellung ändern. Der Scanner schickt jeden gelesenen Barcode später dann gleich.

Gruß.
 
Zitat Wikipedia:
Die EAN steht für European Article Number (heute International Article Number) und ist eine Produktkennzeichnung für Handelsartikel. Die EAN ist eine Zahl, bestehend aus 13 oder 8 Ziffern, die zentral durch die GS1-Gruppe verwaltet und an Hersteller auf Antrag vergeben wird. In Deutschland fallen für die Vergabe einer ILN, welche Voraussetzung für die Beantragung einer EAN ist, jährliche Gebühren an. Anfang 2009 wurden die EAN umbenannt in GTIN (Global Trade Item Number, Globale Artikelidentnummer) und die ILN in GLN (Globale Lokationsnummer).
 
Das wäre doch gut:
Eine EAN-8 mit der Startziffer 2 kann lizenzfrei innerhalb der eigenen Organisation verwendet werden, sie ist aber nicht weltweit eindeutig.
Die damit verfügbaren 6 Stellen sollten ja eigtl. für den Heimgebrauch mehr als ausreichen...
 
Also dann nehme ich EAN-8. Noch eine Frage zum Aufbau, EAN-8 hat:
  • 7 Ziffern, davon sind die ersten 2-3 (de von 40 - 44) die Länderkennung und die Restlichen frei wählbar
  • und eine Prüfziffer
Demnach wäre "4099 5458" eine korrekte EAN-8. Die letzte 8 ist ja die Prüfziffer, d.h. abwechselnd mit 10 und 3 multiplizieren und dann modulo 10 rechnen.

Aber wie wie ist das mit odd/even bzw. der Zifferorientierung (siehe hier)? Wird die Prüfsumme mit codiert?

Ich blicke noch nicht ganz hinter das System von EAN-8, aber EAN-13 habe ich verstanden!

CPU

P.S.: Es werden also nur nach odd die Zahlen codiert, oder?
Ergänzung ()

Angenommen ich wollte die Barcodes mit einer Webcam einlesen (die Scanner sind ja sehr teuer ...) wie betreibe ich die Erkennung des Barcodes auf dem Bild?

Ich habe schon mit Bildverarbeitung gearbeitet, d.h. ich habe ein Programm geschrieben, dass die Umrisse eines Menschen erkennt und auch auf Gesten interagieren kann.

Doch wie finde ich zunächst mal einen Barcode auf einem Bild? Man kann ja die Forderung stellen, dass der Barcode auf einer Linie gehalten werden muss, d.h. im (Live-)Bild ist eine rote Linie in der Mitte, die die Scannerlinie simmuliert und die Linie muss einmal durch den einzulesenden Barcode verlaufen.
 
Zuletzt bearbeitet:
Ich frage mich, wie ich in einem Bild einen Barcode erkenne und diesen dann auslesen kann.
 
Mit dem Scanner. :p

Ok, war nicht ganz durchdacht der Vorschlag. Hab auch monentan viel um die Ohren auf der Arbeit...

Hab aber was gefunden: bctester
Frag aber nicht, wie man das einbaut. ;)
 
Ich meine, wenn ich mit einer Webcam den EAN-Code auslesen möchte! Wie die Funktionsweise eine Algorithmuses sein muss, damit man aus einem Bild einen EAN-Code auslesen kann!
 
Zuletzt bearbeitet:
Zurück
Oben