Barcodes

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Barcodes

Beitrag von Rolf Ramacher »

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.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
UliTs
Der Entwickler von "Deep Thought"
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:

Beitrag von UliTs »

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
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
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:

Beitrag von Tom »

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
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Rolf,

meine Funktion erstellt einen EAN13 Barcode, der hat 13 Stellen zu haben, sonst ist es keiner und er wird nicht erkannt. Kürzere Barcodes gibt es, mit denen kann ich aber nicht dienen.
Gruß
Hubert
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Beitrag von andreas »

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.
Gruß,

Andreas
VIP der XUG Osnabrück
Siggi
Rookie
Rookie
Beiträge: 12
Registriert: Di, 07. Feb 2006 14:53
Wohnort: Limsdorf

Beitrag von Siggi »

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
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Barcode Drucken

Beitrag von Rolf Ramacher »

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ß.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

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.
Gruß
Hubert
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Barcode

Beitrag von Rolf Ramacher »

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. ?
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
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

Beitrag von brandelh »

Rolf Ramacher hat geschrieben:dies hatte schon versucht, der Druck ist zwar erfolgt, aber der Scanner brachte keine Reaktion.
Ich meinte nicht den EAN13 mit 8 Stellen laden, sondern den Quellcode auf EAN8 umschreiben !

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
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

PRG Prüfen

Beitrag von Rolf Ramacher »

Hallo Hubert,


hattest du schon mal Zeit in meine Druck.prg reinzuschauen ?
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

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.
Gruß
Hubert
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Barcode

Beitrag von Rolf Ramacher »

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.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

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.
Gruß
Hubert
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Barcode

Beitrag von Rolf Ramacher »

Hallo Hubert,

Fehler gefunden. War ein Fehler in der Größentabellendatenbank
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
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

Beitrag von brandelh »

Rolf Ramacher hat geschrieben:Hallo Hubert,
Fehler gefunden. War ein Fehler in der Größentabellendatenbank
da bin ich aber froh, dass mein Ruf nicht ramponiert wurde :D
Schließlich hatte ich dieses Modul nach Fertigstellung (2003 ?) komplett durchgetestet ... aber man weiß ja nie. :wink:

Tatsächlich kam es bei mir nie zum Einsatz, das Projekt hatte sich zerschlagen in der Anfangsphase ...
Gruß
Hubert
Antworten