Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   [Bibliothek] Barcode für Delphi (Zint) (https://www.delphipraxis.net/143986-%5Bbibliothek%5D-barcode-fuer-delphi-zint.html)

0815achim 23. Aug 2013 09:13

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Hallo

Ich wollte soeben voller Erwartung ZINT auch mal ausprobieren.
Leider fehlt mir aber zum compilieren die "zint_metafile.pas"

Viele Grüße... 0815achim

MarcoWarm 23. Aug 2013 09:37

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Major UPDATE

ab heute wird's wohl nicht mehr funktionieren ;-) - aber zumindest compiliert es

Wir haben den Code jetzt insoweit angepasst, daß er jetzt keinerlei AnsiString und AnsiChar Code mehr enthält. Das heißt alle "Strings" sind intern jetzt 0-basierende Byte oder Char Arrays. Das liegt näher am C Code und sollte jetzt kompatibel mit den mobilen Plattformen sein.

Es wäre nett, wenn das jemand verifizieren könnte (iOS oder Android) - auch, ob sich diese erstellten Barcodes auch scannen lassen (nicht alles was dicke und dünne Striche hat ist ein lesbarer Barcode ;-) )

Außerdem werden jetzt die Gs1 Composite Barcodes unterstützt (zumindest EAN128) http://www.dlsoft.com/barcode_types/...de_symbols.htm

schönes Wochenende
Marco

PS @ achim - das zint_metafile war deprecated... in der aktuellen revision ist es nicht mehr dabei ... war noch eine Leiche .. danke fürs bescheid geben

0815achim 23. Aug 2013 11:02

AW: [Bibliothek] Barcode für Delphi (Zint)
 
OK!

Danke für die schnelle Antwort.

Gruß... 0815achim

0815achim 26. Aug 2013 12:11

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Hallo

Ich schon wieder.
Erst mal mein Lob für die klasse Arbeit und die Muhe.

Ich habe beim rumprobieren noch einen kleinen Fehler entdeckt.
Beim erzeugen von DataMatrix wird in der generierten Grafik immer ein "@" angehängt.

Den Fehler selber habe ich im zint_dmatrix.pas Teil gefunden.
Dort steht in Zeile 479 "while (sp <= inputlen) do".
Richtig wäre aber "while (sp < inputlen) do".

Viele Grüße... 0815achim

MarcoWarm 26. Aug 2013 13:10

AW: [Bibliothek] Barcode für Delphi (Zint)
 
uuuuuuuuuuuuuuuuuuuuuund gefixt :-)

und als Belohnung für's Fehlerfinden gibts jetzt gratis den QR Code encoder obendrauf

Gruß
Marco

chaosben 27. Aug 2013 15:31

Update 27.08.13: wer hat einen Scanner der Gridmatrix lesen kann?

Seit heute sind folgende neue Codes verfügbar: MicroQR und Gridmatrix.
Außerdem haben wir intern (TEncoding, StrtoArrayOfByte, ...) ein wenig auf-/umgeräumt. Hoffentlich läuft es jetzt noch auf allen System sauber. :roll:

chaosben 28. Aug 2013 16:30

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Update 28.08.13: Neue Codes und ein paar Helper

Neu hinzugekommen sind EAN-Codes, einige Plessey's und ein paar Helper um die Optionen eines Symbols besser zu setzen (TZintSymbol.???Options)

Furtbichler 29. Aug 2013 07:12

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Zitat:

Zitat von MarcoWarm (Beitrag 1225968)
..auch, ob sich diese erstellten Barcodes auch scannen lassen (nicht alles was dicke und dünne Striche hat ist ein lesbarer Barcode ;-) )

Wenn ihr pixelgenau rendert, dann solltet ihr doch einen Unittest schreiben können, denn bitmapbasierte Barcodeencoder APIs sollte es doch geben, oder? Nur so ne Idee.

Und falls ihr wider erwarte nicht pixelgenau rendert (also die Strich- und Zwischenraumdicken auf pixel herunterrechnet und ggf. anpasst), dann garantiere ich euch, das eure Barcodes nicht immer lesbar sind (genaugenommen nur mit hochauflösenden Druckern). :stupid:

Und leider bzw. gott-sei-dank gibt es auch bei Scannern gute und schlechte (wobei die schlechten nach Spec decoden, was ja nicht gerade 'schlecht' ist) und die guten eine Art Fuzzy Logic haben ('sieht am ehesten nach EAN aus, ist zwar außerhalb der Spec, aber lesbar')

Nur die 'guten' lesen auch schlecht gerenderte Barcodes (d.h. nicht pixelgenau) und das auch nicht immer. Leider. Ich kenne ein Gerät von SICK, welches neben dem Lesen auch eine Analyse der Barcodegüte ausspuckt. Aber das kostet ne Ecke.

Das war mein Senf zum Donnerstag.

weisswe 29. Aug 2013 07:41

AW: [Bibliothek] Barcode für Delphi (Zint)
 
[QUOTE=Furtbichler;1226571]
Zitat:

Zitat von MarcoWarm (Beitrag 1225968)
Und leider bzw. gott-sei-dank gibt es auch bei Scannern gute und schlechte (wobei die schlechten nach Spec decoden, was ja nicht gerade 'schlecht' ist) und die guten eine Art Fuzzy Logic haben ('sieht am ehesten nach EAN aus, ist zwar außerhalb der Spec, aber lesbar')

Ich habe einmal auf einem Whiteboard händisch einen Barcode gemalt - auch dieser konnte von unseren Barcodescannern gelesen werden. Die waren wirklich "fuzzy".. :D

MarcoWarm 29. Aug 2013 08:38

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Also,

um der, zu befürchtenden Diskussion ("Ihr malt eure Barcodes ja schlimmer als ein Kleinkind mit dem Fuss") hier mal den Wind aus den Segeln zu nehmen:

Wir (besser gesagt zint) rendert den Barcode, so genau es die entsprechende Canvas zulässt. Das ist im Falle eines Bitmaps/Printers Pixelgenau, bei WMF/LMF/SVG etc. Fließkommagenau!

Zu meiner Aussage
Zitat:

..auch, ob sich diese erstellten Barcodes auch scannen lassen (nicht alles was dicke und dünne Striche hat ist ein lesbarer Barcode )
bezieht sich vielmehr auf die Logik der Barcodeerstellung. Da wir von 1 auf 0 basierte Strings/Arrays gewechselt haben kann es durchaus sein, daß wir dabei einen Encoder "zerschossen" haben (Endbedingungen von for-Schleifen etc.). Und es war auch ein wenig Ironie dabei ;-)

Gruß
Marco

Moehre 3. Sep 2013 10:17

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Na, das passt ja prima ;) Ich stelle grade meine Software von D7 auf XE2 um und war auf der Suche nach einer Barcode-Compo, weil die alte nicht mehr unterstützt wird :)

Eine Frage: ich bin jetzt nicht so firm, was Grafik Programmierung angeht und habe auf den ersten Blick im Source nichts gefunden: Ist auch die Möglichkeit geplant / vorhanden, den Barcode "hochkant" zu erzeugen (also quasi 270 Grad gedreht)?
In einigen Dokumenten (Lieferschein usw) soll der Barcode am linken Rand von unten nach oben angedruckt werden ... oder kann ich das erzeugte WMF irgendwie selber passend auf das Dokument / Canvas kloppen?

Thx und Gruss
Moehre

Codehunter 3. Sep 2013 11:41

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Naja es dürfte sicher nicht schwer sein, ein SVG um 270 Grad zu drehen. Wobei es bei den meisten Codes ziemlich egal ist ob 270 oder 90 Grad.

Moehre 3. Sep 2013 12:44

AW: [Bibliothek] Barcode für Delphi (Zint)
 
@Codehunter: Das, was ich gefunden habe, war eher komplizierter mit Matrizen, Ändern der CANVAS Ausrichtung usw. Da scheint es mir einfacher, bei der Erstellung das zu berücksichtigen...

MarcoWarm 3. Sep 2013 13:10

AW: [Bibliothek] Barcode für Delphi (Zint)
 
vielleicht hilft dir das weiter:

http://www.delphipraxis.net/1216358-post8.html

chaosben 13. Sep 2013 14:38

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Update 13.09.13: Großes Etappenziel erreicht!
Heute haben wir das Ziel erreicht, das alle Barcodetypen des Zint-Projektes verfügbar sind.
Außerdem läuft unsere eigene Rendering-Engine nun zufriedenstellend. Alles in allem ein guter Start ins Wochenende. :)
Im Repository befindet sich jetzt auch eine kompilierte Delphi-Demo.

Codehunter 13. Sep 2013 18:08

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Erstmal danke und dickes Lob für die viele Mühe! Bei meinem Spezi Codabar klemmts aber anscheinend: Als Daten der Teststring "123456" verwendet liefert die Demo "Illegal characters in data" - wobei seltsamerweise Buchstaben funktionieren und Zahlen nicht. Codabar kann aber sehr wohl auch Zahlen ;-)

chaosben 14. Sep 2013 12:41

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Danke! :)

Laut Definition muss ein Codabar mit A,B,C oder D beginnen und enden. Dazwischen kannst du Ziffern setzten. So ists im Moment auch implementiert.
Falls es andere Definitionen/Protokolle gibt, müssten wir das noch einbauen.

Codehunter 14. Sep 2013 16:52

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Ehrlich gesagt, ich habe mich nie mit der Definition befasst. Wir haben hier rein numerische Codabars im Einsatz, die alte Barcode-Komponente machte das auch klaglos mit und die Scanner (basierend auf Psion und Tektronix) lesen das auch problemlos.

Im Gegenteil, ich kann mich erinnern, dass wir mal Probleme hatten einen alphanumerischen bzw. hexadezimalen Codabar zu generieren und das Ding nur numerisch wollte.

Hab grad mal ein bisschen nachgelesen: Scheinbar kann man A bis D nur als Startzeichen oder Stopzeichen verwenden, dürften also nur jeweils am Anfang und am Ende vorkommen. Jedes andere Zeichen, also auch die rein numerischen, dürften theoretisch überall vorkommen (auch als erstes oder letztes Zeichen).

Normalerweise wäre das auch gar kein Problem, da man jeden Scanner auf Stripchars konfigurieren kann. Da es aber bei uns auch rein numerische gibt und die Scanner nicht auf Stripchars eingestellt sind, wäre das inkompatibel.

Ich denke, ein dediziertes Start-Stop-Zeichen ist technisch nicht notwendig sondern eine Festlegung der Unternehmen, die Codabar verwenden (vornehmlich FedEx und US-Bibliotheken).

Bei uns kam Codabar im Lager zum Einsatz, da er sich als robuster erwies als EAN, wenn Etiketten mal beschädigt oder zerkratzt sind ließ sich Codabar deutlich zuverlässiger lesen als EAN.

chaosben 14. Sep 2013 19:18

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Na hoppla ... das scheint wohl ein Missverständnis zu sein. Ich habs im Code angepasst. Jetzt sollte es für dich nutzbar sein. :)

Codehunter 14. Sep 2013 21:25

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Herzlichen Dank für die schnelle Reaktion! Wird am Montag gleich ausprobiert ;-)

Nintendo 15. Sep 2013 19:45

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Wie ich das verstanden habe, kann man mit ZInt Barcodes erstellen.

Ich könnte aber ein Leseprogramm dafür gebrauchen, sofern eine gewöhnliche Webcam zum Lesen genügt oder ein Handscanner nicht teurer ist als so eine Webcam.

Was gibt es da?

Testweise ZInt runterladen scheitert an dem Unstand das ich hier jede .pas Datei einzeln holen muss. Was, wenn diese Bibliothek dann wirklich nur die Codes erstellen kann, ohne sie auch lesen zu können.

Wenn es passendes gibt, interessiert mich ein Link zu einer Datenbank mit den Zuordnungen zu den Artikeln, die mit dem Barcode codiert sind. Und zwar für Asien.

Wer kann mir einen Link senden?

Codehunter 16. Sep 2013 05:54

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Zitat:

Zitat von Nintendo (Beitrag 1228585)
Ich könnte aber ein Leseprogramm dafür gebrauchen, sofern eine gewöhnliche Webcam zum Lesen genügt oder ein Handscanner nicht teurer ist als so eine Webcam.

Kabelgebundene Scanner sind billiger als Webcams. Man muss nur schauen welche Codierungen und welche Auflösungen sie beherrschen.
Zitat:

Zitat von Nintendo (Beitrag 1228585)
Testweise ZInt runterladen scheitert an dem Unstand das ich hier jede .pas Datei einzeln holen muss.

Bequemlichkeit ist eine Zier, doch Fehl am Platze hier. Stichwort TortoiseSVN o.Ä.

Codehunter 20. Sep 2013 15:06

AW: [Bibliothek] Barcode für Delphi (Zint)
 
@chaosben: Ich hab zwei Tage gebastelt um Zint testweise in unser System zu integrieren. Ich muss mich da korrigieren, das mit den Start-Stop-Chars stimmt doch. Unsere Scanner (Psion EP10) scheinen diese Zeichen aber schon vor dem Tastaturpuffer wegzufiltern (scheinbar über die Firmware vom Scannermodul), darum sieht man in den gelesenen Rohdaten keine Start-Stop-Zeichen.

Insofern muss ich mich entschuldigen, du solltest das wieder auf den Ausgangszustand zurück ändern.

chaosben 20. Sep 2013 19:01

AW: [Bibliothek] Barcode für Delphi (Zint)
 
@Codehunter: kein Problem. Ich habs wieder rückgängig gemacht. Und danke für die Rückmeldung. :)

Codehunter 21. Sep 2013 08:29

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Eventuell wäre eine etwas präzisere Fehlermeldung an der Stelle sinnvoll. Nicht einfach nur "Invalid characters" sondern etwas das dediziert auf die fehlenden/falschen Start-Stop-Zeichen hinweist.

Tatsächlich gibt es keine technische Notwendigkeit für diese Zeichen, sondern es ist einfach eine Festlegung der Unternehmen, welche die Codierung einsetzen.

Aber an der Stelle mal dickes Lob bzgl. des WMF-Exports: Ein durchschnittlicher Druckauftrag für Etikettenbögen ist jetzt vom bisherigen Volumen von ca. 23 MB auf 870 kB zusammengeschrumpft. Das hat ganz konkrete Auswirkungen auf den Arbeitsfluss. Ich denke, im nächsten großen Release wird Zint die alte Barcode-Komponente ablösen.

Was aber noch sehr wünschenswert wäre: Eine Delphi-Komponente, welche die native Zint-Bibliothek kapselt. Im Moment ist es mehr ein Copy&Paste-Programmieren aus der Demo heraus.

chaosben 21. Sep 2013 09:17

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Die Fehlermeldung habe ich angepasst. Sie war eben im original-Code so. Theoretisch besteht da noch viel Anpassungsbedarf.

Es gibt eine VCL-Komponente im SVN.
Falls noch andere Wünsche bestehen, musst du einfach Bescheid sagen.

hstreicher 21. Sep 2013 19:43

AW: [Bibliothek] Barcode für Delphi (Zint)
 
noch mal zu Codabar ,
ich habe gerade mal die Einstellungen meines Scanners durchgelesen

da gibt es verschiedene "Geschmacksrichtungen"

die Start/Stop Codes sind alternativ

ABCD/ABCD
ABCD/EN*T
oder auch Kleinbuchstaben
abcd/abcd
abcd/en*t

http://en.wikipedia.org/wiki/Codabar

Codehunter 21. Sep 2013 19:54

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Zitat:

Zitat von chaosben (Beitrag 1229353)
Es gibt eine VCL-Komponente im SVN.

Ups, glatt übersehen :-) Ich hatte nur die alte Komponente für die DLL gesehen.

chaosben 23. Sep 2013 14:19

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Habs jetzt noch mal angepasst. Man kann nun ABCDTN*E als Start/Stop-Zeichen nehmen.
Ich hoffe, das ist nun der Weisheit letzter Schluss. :-)

0815achim 24. Sep 2013 07:45

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Hallo

Ich bekomme beim Demo Projekt für FMX keine Ausgabe (Ich arbeite mit XE2).
Das Demo Projekt für VCL funktioniert einwandfrei.

MarcoWarm 24. Sep 2013 13:43

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Hallo Achim,

ich habe eben mal die demo compiled und mit ins SVN gestellt... bringt die Exe bei dir auch keine Ausgabe? Die Quellen sind aktuell.

0815achim 25. Sep 2013 10:25

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Hallo

Auch die von dir compilierte EXE erzeugt bei mir keine Ausgabe.
Meine erste Vermutung das etwas mit meinem Delpi oder Treibern nicht stimmt hat sich leider nicht bewahrheitet.
Sobald ich eine BMP "von Hand" imgResult lade wird dieses auch angezeigt.

Gruß... 0815achim

0815achim 25. Sep 2013 10:44

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Ich noch mal

Es scheint doch irgendwie an meinem Rechner zu liegen.
Bei einem anderen Rechner geht die von dir erzeugte Exe.
Der zweitrechner hat allerding noxh winXP drauf im gegensatz zu meinem Arbeitsrechner mit Win7. Keine Ahnung ob das was zu sagen hat.
Ich werd auf jeden Fall mal bischen weiter testen.

Gruß... 0815achim

0815achim 25. Sep 2013 12:41

AW: [Bibliothek] Barcode für Delphi (Zint)
 
So und jetzt zum dritten mal

Ich habe nochmals an mehreren Rechnern getestet.
An 3 win7 Rechnern -> keine Ausgabe.
An 2 winXP Rechnern -> ordentliche Ausgabe.
An 1 Win2k Rechner -> Exception.

Scheint also doch irgendwie mit dem Betriebssystem zusammen zu hängen.

Es wurde doch mal irgendwan eine "eigene Render Engine" implementriert.
Ist da evtl. die Ursache zu suchen?

Gruß... 0815achim

Thom 25. Sep 2013 13:54

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Die Demo funktioniert bei mir unter Windows 7 64 Bit ohne Probleme.
Tolle Arbeit! :thumb:

Codehunter 25. Sep 2013 14:12

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Kann ich bestätigen: Win 7 x64 ohne Probleme. Ich könnte mir aber vorstellen, dass der Metafile-Export die Ursache sein könnte. Die Demo basiert ja darauf und die VCL wiederum bedient sich bei Windows wenn es um Metafile geht. Jetzt weiß ich aber nicht, ob sich Grafiktreiber auch um die Metafiles kümmern oder ob das höher im Betriebssystem angesiedelt ist.

MarcoWarm 25. Sep 2013 14:25

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Aaaaalso,

hier kommt der Erklärbär :

die Exception
Code:
Fehler bei der Bereichsprüfung
kommt wenn ich versuche die Druckerliste zu bekommen und es dabei knallt - ich hab keine Ahnung warum das auf einigen Systemen passiert - aber das ist auch nicht Aufgabe unseres Projektes ;-) - ich hab die Exception jetzt abgefangen.

Die Darstellung ist anscheinend von System zu System unterschiedlich. Bei manch einem OS (z.B. Win Server 2008) ist es kein Problem, daß ich die Canvas nicht mit BeginScene und EndScene behandle. Nun mache ich es gemäß Lehrbuch und hoffe es funktioniert überall gut.

Gruß
Marco

0815achim 26. Sep 2013 05:07

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Danke!

Jetzt gehts ohne Probleme.

Gruß... 0815achim

matashen 26. Sep 2013 14:25

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Hallo,

ich hab die alte Zint Compo durch die neue ersetzt. Leider hab ich bei der Ausgabe auf ein TImage über den wmfrenderer den gleichen Effekt den ich auch bei der OriginalKompo hatte.

Wenn ich foregroundcolor mittels einer Colorbox setzen will dann bleibt mein Image weis und zeigt nichts mehr an.

Delphi-Quellcode:
    InitRenderTarget(rt);
    rt.ForegroundColor:=barcodefarbe.color;
   rt.backgroundcolor:=colorbox1.Color;
    try
      Symbol.Render(rt);
      imgResult.Picture.Graphic:=wmf;
    finally
Nachdems auch schon im alten Zint das Problem gab, evtl ist das mit rüber portiert worden.

Evtl kann das mal jemand testen, reproduzieren.

meine Umgebung: Win7 32Bit
Delphi XE2 Enterprise

MarcoWarm 27. Sep 2013 06:42

AW: [Bibliothek] Barcode für Delphi (Zint)
 
Hi matashen,

ich kann es leider nicht bestätigen. Ich habe mal Farbauswahlboxen in die VCL Demo reingebaut. Wäre schön, wenn du die Demo mal bei dir builden könntest.

Gruß
Marco


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz