![]() |
BarCode erstellen??
hat jemand einen tipp, wie ich auf meinen eigenen formular einen barcode abhängig von einem gegebenen datenfeld erstellen kann?
habe von fastreport die komponente frxbarcodeobject gefunden. kann ich diese komponente dafür benutzen, ohne dass ich gleich die komplette fastreport engine mit verwenden muss?? wäre echt dankbar für eure hilfe ;) |
AW: BarCode erstellen??
Die lapidare Antwort lautet, nutz einen Barcodefont.
Gruß K-H |
AW: BarCode erstellen??
Oder verrate uns, welchen Code du erstellen willst...
Datamatix? QR-Code? EAN? Code39? Um nur einige zu nennen... Mavarik |
AW: BarCode erstellen??
Zitat:
Anmerkungen: Einige Barcodes sind zudem nicht frei als Font erhältlich. Allerdings sei angemerkt, das die weitaus meisten Barcode-Rendering Engines nicht in der Lage sind, einen Barcode pixelgenau zu erstellen. Bei niedrigen Auflösungen ist es dann nämlich möglich, das der Barcode vom Scanner nicht erkannt wird. Fonts sind -sauber umgesetzt- pixelgenau. Auch die FastReport-Engine gehört dazu. Ich persönlich würde einen Font nehmen, und wenn das nicht geht, eben die FR-Engine. Was ist schlimmes dabei, die paar 100k mit zu linken? |
AW: BarCode erstellen??
Barcodefont: sorry das macht man nicht .....
Wenn Du dann das Prg auslieferst, so musst Du immer den Font mitliefern und je nach Windows; XP,Vista,WIN8; WIN Server, Terminalserver, usw. wirst Du erhebliche Probleme beim Installieren deiner App bekommen. Das kann man machen, wenn man mit 90% seiner Kunden in persönlichen Kontakt treten will :lol: |
AW: BarCode erstellen??
Auf meinem Github Account gibt es eine Barcode Komponente.
![]() Allerdings ist der Code noch nicht auf Delphi XE angepasst (string -> AnsiString, usw). |
AW: BarCode erstellen??
@arnof: Abgesehen davon, dass ich liebend gerne mit 100% meiner Kunden in Kontakt stehe - wo genau liegen da die Fallstricke? Ich hatte mit Barcodes (zumindest dem Erstellen) bislang nur in wenig Projekten zu tun, wobei auch nur 1x das ganze im Report geschah. Ansonsten bin ich mit einem Font gut gefahren.
|
AW: BarCode erstellen??
Zitat:
Und da bei fehlendem Font dann der ganze Druck abgebrochen werden muß (weil es ja zB sinnlos ist, dann nur den Barcode-Druck wegzulassen und Tausende Etiketten OHNE Barcode auszudrucken - um sie dann zu entsorgen) oder ein anderer Font mit gleichem Namen installiert wurde ... Deshlab habe ich von Barcodefonts bisher die Finger gelassen - und die Striche lieber selber passend zur Endgeräte-Auflösung selber berechnet - ist auch System- und Geräte-unabhängig. Das mache ich seit DOS-Zeiten so und ein Test vorkurzem mit Barcodefonts hat dies wieder bestätigt: Man erreicht keine saubere Ausgabe bei minimalem Raum - nur riesen Barcodes funktionieren mit Fonts einigermaßen. Die einzigen Barcodefonts, die sauber rauskommen, sind im Drucker installierte Fonts bzw. Algorithmen, auch weil die Drucker zu geringe oder falsche Größenvorgaben einfach ignorieren und diese dann selber setzen. |
AW: BarCode erstellen??
Zitat:
Aber im Grunde genommen hast Du Recht: Während ein korrekt gerenderter Barcode -umgerechnet- eben einfach nicht als 6pt Font darstellbar ist, würde ein auf 6pt gepresster BC-Font vermutlich grenzwertige Ergebnisse liefern, die umso besser ausfallen, je konkreter die Hints sind, aber eben nicht 100% korrekt sind und sogar zu Lesefehlern führen können (bzw. ist der BC dann gar nicht lesbar). Ich drucke aber grundsätzlich nicht so kleine Barcodes (außer mit Thermotransfer). Zitat:
Ich korrigiere mich also: Lieber ne FR-Engine und Fonts nur als Notlösung bzw. bei Druckern mit genügender Auflösung oder normalgroßen Barcodes. Geht die Ausgabe über einen Laserdrucker, reicht i.a. ein Font. Geht sie über Tintentrahler oder Industriedrucker mit < 150dpi würde man sich mit Fonts die Karten legen. Wenn der Drucker nativ Barcodes drucken kann (z.B. Zebra-Drucker), dann würde ich hier sowieso eine Lösung anstreben, die dieses Feature nutzt. Und das geht selbst mit einer FR-Engine nicht. Zitat:
|
AW: BarCode erstellen??
@sx2008
danke dir! das ist genau das, nachdem ich gesucht habe! noch ne noobie frage dazu: barcodes können wohl GRUNDSÄTZLICH nur aus ziffern gebildet werden? :P |
AW: BarCode erstellen??
Zitat:
zwischen Zahlen und Buchstaben-Codierung umzuschalten. Noch etwas zur Barcode-Größe: Normalerweise hat ein Barcode-Typ noch Standards für Mindestgröße, mimimale Abstände, ... Wenn man den Standard nicht beachtet (und z.B. einfach irgendwelche Fonts skaliert) ist es Glückssache welche Scanner das dann lesen können. |
AW: BarCode erstellen??
Zitat:
Wenn der Renderer nun den dünnen Strich mal 2 und mal 3 Pixel, und den dicken Strich dafür mal 4 und mal 5 Pixel breit macht, dann haben wir ein verhältnis von 2:4 = 1:2 bis 3:4 = 1:1.3 . Und das ist dann klar außerhalb der Spec. Kein Scanner (nun ja, fast keiner) wird das dann lesen können. Daraus folgt: 1. Der Renderer darf nicht einfach skalierte Rechtecke zeichnen, sondern muss die Pixelbreiten einmalig berechnen und dann pixelgenau füllen. 2. Ein Barcode kann nicht beliebig breit sein, d.h. er lässt sich vertikal nur diskret vergrößern. |
AW: BarCode erstellen??
ich werwende ZINT,
zu der Lib gibts auch einige Threads hier. Läuft ganz gut. Hat zwar ein paar Bugs, aber im großen und ganzen ists OK für ne kostenlose komponente. hier der Link zur Kompo-Sammlung hier in der dp ![]() |
AW: BarCode erstellen??
Zitat:
![]() (dünnste Strichbreite von GS1-128 liegt zwischen mindestens 0,495 mm und maximal 1,016 mm) Laut Wikipedia ist im Code128 eine Ruhezone links und rechts von 6,4 mm vorgesehen und der kleinste Strich sollte nicht kleiner als 1/10 der Ruhezone sein (Richtwert). ![]() |
AW: BarCode erstellen??
Zitat:
![]() |
AW: BarCode erstellen??
Zitat:
Gruß K-H |
AW: BarCode erstellen??
Zitat:
|
AW: BarCode erstellen??
Zitat:
Perlsau, einen nicht installieren (also im System angemeldeten) Font kann man aber nur verwenden, wenn die Font-Datei auch auf der Kiste vorhanden ist und niemand dran rumgefummelt hat. Und einige Benutzer treiben die merkwürdigsten Dinge - wobei das den Programmersteller ansich nicht berührt, wohl aber seinen Ruf ruiniert, vorallem wenn die Benutzer auch noch zu feige sind, zuzugestehen, daß sie rumgefummelt haben. Das Problem bei Barcodes ist ja aber, daß niemand der Benutzer einen Fehler so einfach wie bei falschem Text erkennen kann - und auch beim wieder einscannen für Kontrollen die Zeit und Lust oder auch Möglichkeit meist nicht vorhanden ist - und dann landen völlig falsche Daten im Zielsystem. Aus den Gründen versuche ich alle Fehlerquellen auszuschließen. Und dazu gehören Fonts, also externe Drittdateien, über die ich keinerlei Kontrolle habe. |
AW: BarCode erstellen??
Zitat:
Wenn du's nicht glaubst, dann probier's doch einfach mal aus :!: Daß Fonts zum Ausdrucken eines Barcodes nicht das Gelbe vom Ei sind, ist eine andere Geschichte. |
AW: BarCode erstellen??
Zitat:
|
AW: BarCode erstellen??
Zitat:
Anwendungsfall: Ein Kunde hat sich Rechnungsvordrucke in einer Druckerei drucken lassen und möchte nun, daß seine Rechnungs-Anwendung genau denselben Font verwendet, um ein einheitliches Druckbild zu gewährleisten. Das funktioniert aber nur, wenn der Anwender den benötigten Font installiert hat – oder wenn ich die Fontdatei mitliefere und für die Dauer der Anwendungs-Sitzung genau diesen Font zur Verfügung stelle. Wenn der Anwender XP einsetzt, könnte er im Grunde die Fontdatei im Anwendungsordner löschen, was zwar eine blöde Idee wäre, aber es soll ja keinen DAU geben, den es nicht gibt. Also verwahre ich die Fontdatei in der Exe (eingebunden als Resource) und kopiere sie bei jedem Anwendungsstart in den Anwendungsordner, wenn sie fehlen sollte oder verändert wurde. Wo ist das Problem :?: Übrigens können Anwender, die mit Win XP arbeiten, auch leicht andere benötigte Dateien aus dem Programmordner löschen, z.B. DLLs wie z.B. bei einer Datenbankanwendung, die Firebird Embedded verwendet. Vielleicht löschen sie auch die Datenbank oder gar die Exe ("... ich hab halt kürzlich gelesen, daß Exe-Dateien gefährlich sind ..."), wer weiß das schon? Mit anderen Worten: Du kannst nicht alle Eventualitäten, die ein DAU herbeiführen könnte, berücksichtigen. Ein Bekannter von mir arbeitet bei einer Hotline, der könnte dir Geschichten erzählen, das glaubst du nicht ... |
AW: BarCode erstellen??
Also:
1. Wenn es geht, den Barcodegenerator des Druckers verwenden (z.B. Zebra-Druckersprache) 2. Sonst einen guten Reportgenerator verwenden, der Barcodes anhand der Zieldruckerauflösung pixelgenau rendert. 3. Sonst nach einer Delphi-VCL Barcodekomponente suchen (Andreas Schmidt, siehe torry.net) und auf die Zieldruckerauflösung rendern. 4. Oder eben einen Font verwenden (nur für 'große' Barcodes mit einer minimalen Balkenbreite von 3-4pxl) Auch, und bitte *immer* die Druckerqualität berücksichtigen, mein Tintendrucker z.B. druckt auf normalem Papier Barcodes aus, die zwar pixelgenau sind, aber wegen des Verlaufens der Tinte von keinem Scanner der Welt gelesen werden können. Na gut, Interleaved 2 aus 5 mit einem 6 stelligen Code über die Seitenbreite geht dann doch. |
AW: BarCode erstellen??
Wenns schnell gehen soll, keine 100%ige Datensicherheit braucht und Internet verfügbar ist, lässt es sich auch mit der Google API generieren.
In Delphi habe ich damit bisher nur als Spielerei QR Codes generiert. Aber Barcodes sind wohl auch möglich. Zumindest macht dies diese Seite so -> ![]() Zwar in PHP aber das lässt sich für Delphi bestimmt adaptieren. Geht ja bei QR Codes auch. |
AW: BarCode erstellen??
Also QR-Code ist ein 2D barcode... Aber egal...
Code 39 und EAN lassen sich doch mit wenigen Zeilen selber erzeugen... Hab ich mal in einem Nachmittag mit Turbo pascal 2.0 schon gemacht. |
AW: BarCode erstellen??
Zitat:
Zitat:
Niemand druckt Barcodes als Hobby, dann kann man sich die paar Kröten für eine anständige Lösung auch leisten. |
AW: BarCode erstellen??
Zitat:
Mavarik |
AW: BarCode erstellen??
War blöd von mir formuliert. :oops: Du sollst nur bitte bitte niemanden dazu animieren, sich seine Barcodekomponente selbst zu schreiben, die er dann in in die freie Wildbahn entlässt. Das das aus Übungsgründen und zum Verständnis des Aufbaus von Barcodes ganz sinnvoll sein kann und Spaß macht, steht auf einem anderen Blatt.
|
AW: BarCode erstellen??
Zitat:
Mit Fast-Reports funktioniert Code128 mittlerweile einigermaßen (vermutlich?) (wenn man ein paar nicht dokumentierte Features selbst errät). Bug Reports gibt es dazu seit vielen vielen Jahren. Und ich habe bereits mehr Zeit damit verloren irgendwelche Test-Versionen auszuprobieren als wenn ich das ganze selbst gemacht hätte. |
AW: BarCode erstellen??
Zitat:
Zitat:
Zitat:
Ich dokumentiere meist nur für mich selbst - denn wenn ich es ordentlich beschreiben muß, fallen mir meine Unzulänglichkeiten auf. |
AW: BarCode erstellen??
...nachdem ganzen Fontgeplänkel möcht ich nochmal auf meine Antwort hinweisen.
probiert mal zint Das liefert so ziemlich jeden Barcode oder 2D-Code den es so gibt... und alles ohne font und mit Visueller Komponente. |
AW: BarCode erstellen??
Zitat:
Gruß K-H |
AW: BarCode erstellen??
Zitat:
|
AW: BarCode erstellen??
Zitat:
In den interessanten SourceCode-Files sehe ich überall nur GPL. |
AW: BarCode erstellen??
Zint ist GPL
|
AW: BarCode erstellen??
Zitat:
Ich gebe Dir Recht, dass es super nervig ist, fehlerhafte Implementierungen zu verwenden, aber... Wenn Du dir anschaust, wie viele Sourcen es in C++ gibt und wie wenig in Delphi, bin ich froh um jede weitere Implementierung in Delphi. Und das gilt nicht nur für Barcodes sondern für alle Bereiche. Wenn ich sehe wie viele Fragen hier beantwortet werden mit: Nutze doch die Komponente oder kauf doch die Library... Wir sind doch Programmierer und nicht Library "zusammenklicker", oder? Mavarik |
AW: BarCode erstellen??
Zitat:
Wenn Dein tägliches Brot immer mal wieder Barcodes enthält, dann ist es sicher sinnvoll da was eigenes zu stricken. Gruß K-H |
AW: BarCode erstellen??
Zitat:
Zitat:
|
AW: BarCode erstellen??
Zitat:
Ob ich selbst programmiere oder programmieren lasse, oder Libraries selbst schreibe, schreiben lasse oder fertige Komponenten kaufe, entscheide ich situativ. Ehrlich gesagt versuche ich, so wenig wie möglich selbst zu programmieren. Ich bin doch nicht so blöd und erfinde jedesmal das Rad neu oder arbeite mich zwangsweise in Dinge ein, die andere aus dem Ärmel schütteln. Sofern ich professionelle Hilfsmittel dafür einsetze, also RDBMS, Reportgeneratoren, Barcodekomponenten. fertige TCP-Protokolle etc., dann mache ich das eben. Eine kurze Überschlagsrechnung zeigt mir, das ich z.B. für eine professionelle und ausgereifte Barcodekomponente z.B. 500 Euro ausgeben muss (Beispiel). Das entspricht 1-2 Tagessätzen, wenn ich es entwickeln lasse. Also wer mir dafür eine fertige Komponente fehlerfrei mit Support und Garantie programmiert, muss schon ein toller Hecht sein. Als Jugendlicher fand ich es geil, alles selbst zu programmieren, auch noch, als ich anfing, Geld damit zu verdienen, mir aber der Stundensatz egal war. Aber mittlerweile muss ich anders denken und daher bin ich eben -wie Du es so schön nennst- "Libraryzusammenklicker", wobei ich mich frage, was der Delphi-Programmierer, der die VCL, die Indies, ADO, Zeos, xxxDAC etc. verwendet, denn anderes ist. |
AW: BarCode erstellen??
Deshalb benutzt man ja Delphi, weil es hier viele gute Komponenten gibt. Andere Systeme haben hier zwar aufgeschlossen, vielleicht aber überholt.
Es kommt immer darauf an möglichst schnell eine möglichst gute Lösung zu erreichen. Dem Kunde ist es egal, ob im Hintergrund z.B. ein unsichtbares Memo, Listbox oder so zum schnellen Laden und speichern liegt oder ob man alles schön sauber programmiert. Das Aldiprinzip ist gefordert "gut und preiswert". Es gab Zeiten, wo ich mit meinem guten GFA-Basic (auch unter C++) noch die Grids und die EDITboxen selbst auf dem Bildschirm gemalt habe (incl. Schatteneffekte und den Cursor in die Form gemalt habe), sowas will man einfach nicht mehr ...... |
AW: BarCode erstellen??
[OT]
Zitat:
Wenn dann die Library auch noch im Source daher kommt... OK... Ich habe für meine Programme einen Grundsatz... Es kommt nur rein, was ich auch im Sourcecode habe... Grüsse Mavarik :coder: [/OT] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz