AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte [Bibliothek] Barcode für Delphi (Zint)
Thema durchsuchen
Ansicht
Themen-Optionen

[Bibliothek] Barcode für Delphi (Zint)

Ein Thema von chaosben · begonnen am 27. Nov 2009 · letzter Beitrag vom 24. Okt 2020
Antwort Antwort
Seite 3 von 14     123 4513     Letzte »    
Benutzerbild von chaosben
chaosben
Registriert seit: 27. Apr 2005
Geschichte & Hintergrund
Ende 2009 entstand hier und im TUO-Repository die TZintBarcode-Komponente. Das war ein Compilat der Zint-Bibliothek als 32bit-Windows-DLL und die dazu passenden Delphi Wrapper-Klassen und Komponenten.
Zint ist ein C-Projekt von Robin Stuart, einem sehr netten Entwickler aus UK.
Nach einer Weile starb das original Zint-Projekt (und damit auch die Weiterentwicklung unserer Komponente) weil Robin das Projekt nicht mehr unterstützte.
Ende Mai 2012 kam wieder frischer Wind in das Zint-Projekt, auch durch den Fork (was auch gleichzeitig der aktuelle Stand der Dinge ist) von Ismael Luceno auf github.
Da wir externe Abhängigkeiten(in diesem Fall die zint.dll) nicht gern haben, entschieden wir uns (nach Absprache mit Robin), den originalen C-Code nach Pascal zu übersetzen.
Dabei gelten 2 Regeln:
  1. So nah wie möglich am originalen C-Code bleiben, damit Bugfixes und Features möglichst einfach übernommen werden können
  2. So Pascal wie möglich, damit auch die FreePascal-Gemeinde (und damit möglichst viele Plattformen) etwas davon hat.
Und damit sind wir im Heute angekommen. Die Übersetzung ist vollständig erledigt und nun warten wir auf euer Feedback.

Was es ist
Dies ist eine native Pascal-Implementation der Zint-Bibliothek zur Erstellung von verschiedenen 1D- und 2D-Barcodes.

Download
Den Code gibts per SVN.
Lizenz
Apache License 2.0

Was im Moment geht
Zur Zeit sind folgende Codes verfügbar:
  • 2of5Matrix, 2of5Industrial, 2of5Interleaved, 2of5IATA, 2of5Datalogic
  • Deutsche Post Leitcode, Deutsche Post Identcode
  • EAN128, Code128, Code128B, NVE18, ITF14, EAN14
  • Datamatrix
  • Maxicode
  • Code 11, Code 39, Pharmacentral (PZN), Extended Code39, Code93
  • Pharmacode, 2-Track-Pharmacode, Codabar, Code32
  • Australia Post Code, Australia Post Reply Code, Australia Post Route Code, Australia Post Redirect Code
  • Aztec, Azrunes
  • Code16k
  • Code49
  • Composites: EAN128
  • QR-Code, MicroQR-Code
  • Gridmatrix
  • Plessey, MSI-Plessey
  • EAN13, EAN5, EAN2, UPCA, UPCE, ISBN
  • Telepen,
  • [Korea|Dutch|Japan]Post
  • GS1-Databar
Folgende Rendering-Ziele werden im Moment unterstützt:
  • TCanvas (Delphi, FMX, Lazarus)
  • TMetafile (Delphi)
  • TlmfImage (Lazarus)
  • TBitmap (Delphi, FMX, Lazarus)
  • SVG nativ (Delphi, FMX, Lazarus)

Was noch fehlt
  • Firebird-UDF (man darf doch mal träumen, oder?)

Danke für die Mitarbeit (Ideen, Bugs, ...)
Fragen, Anregungen, Issues
Falls ihr dergleichen habt, schreibt sie bitte in den Issue-Tracker oder auch in diesen Thread (falls eine akute Google-Allergie besteht ). In der Regel sollte sich eine Lösung finden lassen.
Wünsche, die in Form einer PayPal-Zahlung ankommen, werden bevorzugt bearbeitet.

Viel Spass!
Angehängte Grafiken
 
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)

Geändert von chaosben ( 9. Feb 2014 um 08:45 Uhr)
 
Benutzerbild von Codehunter
Codehunter

 
Delphi 10.4 Sydney
 
#21
  Alt 12. Aug 2013, 08:50
Im Moment kommt als Resultat ein Bitmap heraus, das man dann auf die beliebige Größe skalieren kann (bei 2D natürlich nur proportional).
Ich habe beim Thema Barcodes und Drucker bisher auch immer mit Bitmaps gearbeitet. Ist ein solider Weg, allerdings eben sehr sehr mühsam wenn man millimetergenau drucken will. Da dein Code freie Skalierung zulässt ist das schon mal ein dicker Pluspunkt. Denn das was ich bisher verwende, kann nicht linear skalieren sondern nur schrittweise. Anscheinend geht man da intern davon aus, dass bei einem 1D-Barcode ein breiter Strich immer ein Vielfaches der Breite eines schmalen Striches sein MUSS und vergisst dabei die Fehlerkorrektur der Barcodescanner.

Meiner Erfahrung nach muss ein breiter Strich nur deutlich breiter sein als ein schmaler Strich, gleiches gilt für die Lücken. Dann lassen sich Barcodes auch frei skalieren.

Der Korrektheit halber würde ich dir einen "Strikt-Mode" empfehlen, bei dem sich dein Code verhält wie oben beschrieben (standardkonform) und eine Art "Quirks-Mode", der frei skalieren kann.

Hat hier jemand Erfahrungen damit, wie man Vektordaten erzeugt und an den Drucker schickt? Delphi kapselt den Printer ja als Canvas-Objekt, daher geht wohl alles als Bitmap rüber. Wenn man sich aber z.B. mal einen A4-Etikettenbogen vorstellt, denn man mit Barcodes bedrucken will, dann ist das (ja nach physischer Auflösung des Druckers) schon ein verdammt großes Bitmap. Bei meinem HP LaserJet 4050 sind das pro A4-Seite schon 25 MB.

Spaßeshalber habe ich so ein Bitmap mal durch den Vectorizer von Corel Draw gejagt und dann zum Drucker: Siehe da, ca. 280 kB Daten.

Für die Druckgeschwindigkeit bei Multipage-Ausdrucken ist die Datenmenge nicht zu unterschätzen. Besonders auffallend ist das dann, wenn der Drucker über sehr wenig RAM verfügt und der Treiber alles in kleinen Häppchen während des laufenden Druckauftrages "nachreichen" muss.
  Mit Zitat antworten Zitat
weisswe
 
#22
  Alt 12. Aug 2013, 11:37
Das wird eine wirklich gute Komponente und "fast" genau was ich suche.
Es wäre PERFEKT wenn es dann auch unter dem Firemonkey Framework (FMX) laufen würde..
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

 
Delphi XE2 Professional
 
#23
  Alt 12. Aug 2013, 15:50
Was das Rendern angeht, bin ich im Moment noch nicht ganz so glücklich. Aktuell ist es nur eine Adaption des originalen Render-to-PNG Codes. Vielleicht werden wir da noch mal was anderes bauen müssen (eventuell in Richtung EMF oder so). Aber dazu muss ich mich erst mal um ein paar Grafik-Basics kümmern.

Es wäre PERFEKT wenn es dann auch unter dem Firemonkey Framework (FMX) laufen würde..
FMX ist doch FreePascal, oder? Wenn ja, dann ist es Code-technisch kein Problem, denn das Projekt wird aktuell unter Lazarus entwickelt. Also fehlt wohl nur noch eine Komponente. Die wird sich dann auch noch finden (entweder wir oder ein geneigter Contributer )
Benjamin Schwarze
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

 
Delphi 11 Alexandria
 
#24
  Alt 12. Aug 2013, 17:12
Mit FMX meint er den großen Wurf von Emba, das Framework für Win iOS und Android.
Sven Harazim
  Mit Zitat antworten Zitat
mkinzler

 
Delphi 11 Alexandria
 
#25
  Alt 12. Aug 2013, 17:22
Mit FMX meint er den großen Wurf von Emba, das Framework für Win iOS und Android.
Und Windows und MacOSX.
Markus Kinzler
  Mit Zitat antworten Zitat
wjjw
 
#26
  Alt 12. Aug 2013, 23:43
Mit FMX meint er den großen Wurf von Emba, das Framework für Win iOS und Android.
Und Windows und MacOSX.
Richtig! Windows und Mac OS X! Habe schon einige Projekte mit Firemonkey gemacht (POS, ...).
Sehr zufriedene Kunden. Dazu wäre auch eine Barcodekomponente von Nutzen...
  Mit Zitat antworten Zitat
arnof

 
Delphi 10.1 Berlin Enterprise
 
#27
  Alt 14. Aug 2013, 12:14
Ja wenn ich auch mal einen Wunsch äußern dürfte: QR2 Codes mit FMX, das würde mir gefallen .....
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

 
Delphi XE2 Professional
 
#28
  Alt 14. Aug 2013, 14:24
//Edit: Wahrscheinlich wird sich das Backend noch einmal ändern. Dann sollte es FMX-ready werden.

Update 14.08.13: Neues von den Strichmännchen
2 Codes sind neu hinzugekommen: Code 16k und Code 49.
Außerdem haben wir das Backend insofern geändert, das nun ein WMF/LMF erzeugt wird, was man sich dann irgendwohin stretchen kann. Damit sollten theoretisch alle Anwendungsfälle abgedeckt sein (hoffen wir jedenfalls).
Ansonsten gabs hier und da ein paar Bugfixes, umbenannte Units (damit die armen FPC-User < 2.7 auch damit arbeiten können ) und eine Demo-Projekt für Lazarus (mit 1.1 getestet)
Benjamin Schwarze

Geändert von chaosben (14. Aug 2013 um 15:26 Uhr)
  Mit Zitat antworten Zitat
goto10
 
#29
  Alt 15. Aug 2013, 11:14
Servus,

kann man das auch für den C++ Builder nutzen? Das wäre echt fein.
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

 
Delphi XE2 Professional
 
#30
  Alt 15. Aug 2013, 11:36
Ich denke, das wäre Holz in den Busch getragen. Das originale Zint-Projekt ist in C geschrieben. Imho sollten C-Builder-User wohl eher den original Code nutzen.
Benjamin Schwarze
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 14     123 4513     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:45 Uhr.
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