Barcodes
Moderator: Moderatoren
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Barcodes
Hallo Hubert,
vielen Dank für dein tool zum Druck von Barcodes. Das Mischen mit den Texten funktioniert soweit. Nur eines: Gibt es keine Möglichkeit 8-stellige
Barcodes zu drucken die benötige ich auf jedenfall.?
Dein Tipp mit führenden Nullen - der Scanner erkennt diese, aber unser
Kundenprogramm nicht.
Ich habe schon versucht bei der Berechnung der Prüfziffer, sowie auch beim Aufurf der Verschlüsselung-Funktion
GraBarCode Ean13_Encodingtabelle die ab der 8.Stelle auszuschalten.
Aber dann erkennt der Scanner diese nicht.
vielen Dank für dein tool zum Druck von Barcodes. Das Mischen mit den Texten funktioniert soweit. Nur eines: Gibt es keine Möglichkeit 8-stellige
Barcodes zu drucken die benötige ich auf jedenfall.?
Dein Tipp mit führenden Nullen - der Scanner erkennt diese, aber unser
Kundenprogramm nicht.
Ich habe schon versucht bei der Berechnung der Prüfziffer, sowie auch beim Aufurf der Verschlüsselung-Funktion
GraBarCode Ean13_Encodingtabelle die ab der 8.Stelle auszuschalten.
Aber dann erkennt der Scanner diese nicht.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Hallo Rolf,
ich weiß, dah Herr Goeder von der Firma Tobax http://www.Tobax.de ein Tool zum Schreiben von allen möglichen Barcodes geschrieben hat.
Vielleicht kann er Dir weiterhelfen.
Uli
ich weiß, dah Herr Goeder von der Firma Tobax http://www.Tobax.de ein Tool zum Schreiben von allen möglichen Barcodes geschrieben hat.
Vielleicht kann er Dir weiterhelfen.
Uli
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Hallo, Rolf.
Fünfzig Fliegen mit einer Klappe: Der unglaublich leistungsstarke Reportgenerator List & Label (gibt's mehrere Threads zu) bietet u.a. nahezu sämtliche Barcodeformate, auch 3D-Barcodes. Die Barcodes werden innerhalb des Formulars automatisch berechnet, man muß nur eine Funktion einsetzen. L&L 12 ist robust und wesentlich rasanter als seine Vorgänger. Und es gibt u.a. eine StampIt-Unterstützung:
http://www.combit.net
Fünfzig Fliegen mit einer Klappe: Der unglaublich leistungsstarke Reportgenerator List & Label (gibt's mehrere Threads zu) bietet u.a. nahezu sämtliche Barcodeformate, auch 3D-Barcodes. Die Barcodes werden innerhalb des Formulars automatisch berechnet, man muß nur eine Funktion einsetzen. L&L 12 ist robust und wesentlich rasanter als seine Vorgänger. Und es gibt u.a. eine StampIt-Unterstützung:
http://www.combit.net
Herzlich,
Tom
Tom
- andreas
- Der Entwickler von "Deep Thought"
- Beiträge: 1902
- Registriert: Mi, 28. Sep 2005 10:53
- Wohnort: Osnabrück
- Hat sich bedankt: 4 Mal
- Kontaktdaten:
Hallo Rolf,
du könntest den Code 39 nemmen.
Vorteile: du kannst alle Zeichen und verscheidene Längen verwenden, keine Berechnungen sind nötig (lediglich "*" als Start- und Stopzeichen), es gibt sogar freie Schriftarten, die diesen Barcode unterstüzen und so unter allen Programmen druckbar machen.
Nachteil: je länger der Text, desto länger der Barcode.
du könntest den Code 39 nemmen.
Vorteile: du kannst alle Zeichen und verscheidene Längen verwenden, keine Berechnungen sind nötig (lediglich "*" als Start- und Stopzeichen), es gibt sogar freie Schriftarten, die diesen Barcode unterstüzen und so unter allen Programmen druckbar machen.
Nachteil: je länger der Text, desto länger der Barcode.
Hallo Rolf,
hat Dein Kunde zufällig Barcodedrucker im Einsatz ? (Zebra, Marshall....)
Die haben eine eigene Programmierschnittstelle und Sprache (z.B. EPL).
Läßt sich ziemlich einfach ansteuern.
Du schreibst eine Textdatei mit
S5
T34
d23,4
und sendest diese an den Port (com, lpt, \\server\...)
und der Barcode mit Text wird ausgespuckt.
Ich bin begeistert von diesen Teilen und setzte Sie bei Industrielösungen ausschließlich ein.
Siggi
hat Dein Kunde zufällig Barcodedrucker im Einsatz ? (Zebra, Marshall....)
Die haben eine eigene Programmierschnittstelle und Sprache (z.B. EPL).
Läßt sich ziemlich einfach ansteuern.
Du schreibst eine Textdatei mit
S5
T34
d23,4
und sendest diese an den Port (com, lpt, \\server\...)
und der Barcode mit Text wird ausgespuckt.
Ich bin begeistert von diesen Teilen und setzte Sie bei Industrielösungen ausschließlich ein.
Siggi
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Barcode Drucken
Hallo Siggi,
nein unsere Kunden haben keinen spezifischen Barcode-Drucker. Den Barcode benötige ich für Etiketten. Bei denen muß nicht nur der Barcode,
sondern auch Text mit ausgedruckt werden muß.
nein unsere Kunden haben keinen spezifischen Barcode-Drucker. Den Barcode benötige ich für Etiketten. Bei denen muß nicht nur der Barcode,
sondern auch Text mit ausgedruckt werden muß.
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hi,
wenn du nur 7 Stellen plus Prüfziffer hast - UND es nur intern benutzt wird ! . wäre der EAN8 ideal. Bei 8 Ziffern müsste man die Prüfziffer zweckentfremden, dann weiß ich allerdings nicht was der Scanner daraus macht.
Wenn man die EAN13 Klasse als Beispiel nimmt, müsste man die Prüfzifferberechnungsroutine und eventuell die Bitbelegung, sowie das Druckmodul ändern. Es steht dir frei das zu tun. Infos zu dem Barcodes findet man z.B. bei Wikipedia.
wenn du nur 7 Stellen plus Prüfziffer hast - UND es nur intern benutzt wird ! . wäre der EAN8 ideal. Bei 8 Ziffern müsste man die Prüfziffer zweckentfremden, dann weiß ich allerdings nicht was der Scanner daraus macht.
Wenn man die EAN13 Klasse als Beispiel nimmt, müsste man die Prüfzifferberechnungsroutine und eventuell die Bitbelegung, sowie das Druckmodul ändern. Es steht dir frei das zu tun. Infos zu dem Barcodes findet man z.B. bei Wikipedia.
Gruß
Hubert
Hubert
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Barcode
Hallo Hubert,
dies hatte schon versucht, der Druck ist zwar erfolgt, aber der Scanner brachte keine Reaktion. Vielleicht habe ich auch hier etwas falsch gemacht.
Hierbei habe ich auch ein 2.tes Problem. Den Barcode würde ich gerne
etwas größer sprich etwas höher haben. bin bei Sizex+y auf 0.1.
Die Breite ist OK. Kann ich dir mein Test-Programm mal per email schicken. ?
dies hatte schon versucht, der Druck ist zwar erfolgt, aber der Scanner brachte keine Reaktion. Vielleicht habe ich auch hier etwas falsch gemacht.
Hierbei habe ich auch ein 2.tes Problem. Den Barcode würde ich gerne
etwas größer sprich etwas höher haben. bin bei Sizex+y auf 0.1.
Die Breite ist OK. Kann ich dir mein Test-Programm mal per email schicken. ?
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Barcode
Ich meinte nicht den EAN13 mit 8 Stellen laden, sondern den Quellcode auf EAN8 umschreiben !Rolf Ramacher hat geschrieben:dies hatte schon versucht, der Druck ist zwar erfolgt, aber der Scanner brachte keine Reaktion.
Dein Beispielprogramm kannst du mir ruhig zumailen, ich weiß aber nicht wann ich dazu komme es mir anzusehen. Ich bin zur Zeit zu Hause recht beschäftigt.
Gruß
Hubert
Hubert
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo Rolf,
zuerst zum einfachen, die EAN13 (wie gesagt, 13 Stellen) Druckroutine lässt sich skalieren von 82% bis 197%, d.h. verkleinern oder vergrößern.
Für 100% habe ich oben 2 define Werte, die die 100% Y/X Werte representieren:
#define Box_Size_Y_100_Persent 263 // legt 100% auf 26.3mm fest.
Wenn nur die Höhe höher werden soll kann man diesen Wert erhöhen.
Nun zu deinem Programmbeispiel.
Du hast MAIN mit den Hauptaufruf meiner Funktion gemischt. Dadurch wird es recht unübersichtlich. Ich habe in meiner PRG oben einen Bereich mit #ifdef TEST / #endif abgetrennt, der bei einer PRG ein MAIN Testprogramm zulässt, das die eigentliche Funktion aufruft, und später mit einem // deaktiviert wird.
Soweit ich das sehe, hast du die Länge des Strings abgeschnitten und die Aufrufe der 8. bis 13 Stelle herausgeschnitten. Das ginge nur, wenn alle internen Berechnungsmethoden bei EAN8 und EAN13 identisch wären.
Ob das so ist weiß ich nicht.
GraBarcodeEAN13() ist die Hauptfunktion, die ihrerseits die Hilfsfunktionen aufruft. Für EAN8 muss hier geprüft werden, ob die Hilfsfunktionen geändert werden müssen:
So gibt es für jede Stelle eine Info ob R oder L encodiert werden muss.
Zusätzlich muss die Parität beachtet werden.
GraBarcodeEAN13_EncodingTable() kennt die Regeln für EAN13
GraBarcodeEAN13_Parity2EncodingTable() ermittelt Infos die nötig sind.
Ich habe damals mehrere Tage Dokumaterial durchsucht, bis ich die richtigen Angaben gefunden hatte. Mit Wikipedia geht es heute wahrscheinlich schneller. Aber dann muss man genau vergleichen was bei den Regeln und Arrays geändert werden muss um aus EAN13 EAN8 zu machen. Ich habe bei meinen Tests damals einfach kürzere Zahlen links mit 0 vorbelegt und es hat funktioniert.
Wenn es nur irgendein Barcode sein muss, ist eventuell der weiter oben erwähnte (freie Barcode über Schriftart ohne Stellenbegrenzung) einfacher.
zuerst zum einfachen, die EAN13 (wie gesagt, 13 Stellen) Druckroutine lässt sich skalieren von 82% bis 197%, d.h. verkleinern oder vergrößern.
Für 100% habe ich oben 2 define Werte, die die 100% Y/X Werte representieren:
#define Box_Size_Y_100_Persent 263 // legt 100% auf 26.3mm fest.
Wenn nur die Höhe höher werden soll kann man diesen Wert erhöhen.
Nun zu deinem Programmbeispiel.
Du hast MAIN mit den Hauptaufruf meiner Funktion gemischt. Dadurch wird es recht unübersichtlich. Ich habe in meiner PRG oben einen Bereich mit #ifdef TEST / #endif abgetrennt, der bei einer PRG ein MAIN Testprogramm zulässt, das die eigentliche Funktion aufruft, und später mit einem // deaktiviert wird.
Soweit ich das sehe, hast du die Länge des Strings abgeschnitten und die Aufrufe der 8. bis 13 Stelle herausgeschnitten. Das ginge nur, wenn alle internen Berechnungsmethoden bei EAN8 und EAN13 identisch wären.
Ob das so ist weiß ich nicht.
GraBarcodeEAN13() ist die Hauptfunktion, die ihrerseits die Hilfsfunktionen aufruft. Für EAN8 muss hier geprüft werden, ob die Hilfsfunktionen geändert werden müssen:
So gibt es für jede Stelle eine Info ob R oder L encodiert werden muss.
Zusätzlich muss die Parität beachtet werden.
GraBarcodeEAN13_EncodingTable() kennt die Regeln für EAN13
GraBarcodeEAN13_Parity2EncodingTable() ermittelt Infos die nötig sind.
Ich habe damals mehrere Tage Dokumaterial durchsucht, bis ich die richtigen Angaben gefunden hatte. Mit Wikipedia geht es heute wahrscheinlich schneller. Aber dann muss man genau vergleichen was bei den Regeln und Arrays geändert werden muss um aus EAN13 EAN8 zu machen. Ich habe bei meinen Tests damals einfach kürzere Zahlen links mit 0 vorbelegt und es hat funktioniert.
Wenn es nur irgendein Barcode sein muss, ist eventuell der weiter oben erwähnte (freie Barcode über Schriftart ohne Stellenbegrenzung) einfacher.
Gruß
Hubert
Hubert
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Barcode
Hallo Hubert,
vielen Dank vorab für deine Info. Jetzt habe ich aber hierbei ein Problem.
Ich bin dabei dein Programm für den 13-er Barcode in mein Druckprogramm mit den anderen Daten einzubinden.
Wenn ich den Barcode aber in unser Kassenprogramm prüfe, wird eine falsche Größe angezeigt. Immer "1" mehr. Bei Größe 42 kommt 43.
Die Berechnung der Prüfziffer scheint zu stimmen.
Ich übergebe 0 für normalen Artikel 9-Stellige Artikelnr. größenindex 2-stellig.
Bei deinem Testprogramm, wo ich die Nr. eingebe und ausgedruckt wird,
habe ich das gleiche Problem.
vielen Dank vorab für deine Info. Jetzt habe ich aber hierbei ein Problem.
Ich bin dabei dein Programm für den 13-er Barcode in mein Druckprogramm mit den anderen Daten einzubinden.
Wenn ich den Barcode aber in unser Kassenprogramm prüfe, wird eine falsche Größe angezeigt. Immer "1" mehr. Bei Größe 42 kommt 43.
Die Berechnung der Prüfziffer scheint zu stimmen.
Ich übergebe 0 für normalen Artikel 9-Stellige Artikelnr. größenindex 2-stellig.
Bei deinem Testprogramm, wo ich die Nr. eingebe und ausgedruckt wird,
habe ich das gleiche Problem.
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo,
ich habe zur Zeit keinen Barcodescanner da ...
Bitte nimm ein normales Produkt und scanne es.
Dann tippe diese Zahlen in mein unverändertes Beispielprogramm ein, drucke und scanne es.
Wenn nun unterschiedliche Ergebnisse herauskommen, muss ich mein Programm prüfen, wenn nicht muss es an deinem liegen.
Grundsätzlich muss die Zahl unter dem EAN Code mit der Eingabe übereinstimmen.
ich habe zur Zeit keinen Barcodescanner da ...
Bitte nimm ein normales Produkt und scanne es.
Dann tippe diese Zahlen in mein unverändertes Beispielprogramm ein, drucke und scanne es.
Wenn nun unterschiedliche Ergebnisse herauskommen, muss ich mein Programm prüfen, wenn nicht muss es an deinem liegen.
Grundsätzlich muss die Zahl unter dem EAN Code mit der Eingabe übereinstimmen.
Gruß
Hubert
Hubert
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Barcode
da bin ich aber froh, dass mein Ruf nicht ramponiert wurdeRolf Ramacher hat geschrieben:Hallo Hubert,
Fehler gefunden. War ein Fehler in der Größentabellendatenbank
Schließlich hatte ich dieses Modul nach Fertigstellung (2003 ?) komplett durchgetestet ... aber man weiß ja nie.
Tatsächlich kam es bei mir nie zum Einsatz, das Projekt hatte sich zerschlagen in der Anfangsphase ...
Gruß
Hubert
Hubert