Hi Experten,
wer weiss Rat wie ich via Delphi einen (UPC) Barcode selber geneneriere /programmiere und diesen via Canvas() ausprinte ohne kommerzielle Fonts zu nutzen ?
Danke
Mathias
Über das TPrinter-Objekt hast Du Zugriff auf den Drucker und der hat auch wieder ein untergeordnetes Canvas-Objekt…
Beachten hierbei mußt Du die DPI-Einstellung - wenn Du das erstmal richtig codieren kannst, also die Ausgabe am Bildschirm schaffst, dürfte der Rest kein Problem darstellen… Aber das war ja nun nicht Deine Frage…
Sorry, hab mich vielleicht falsch ausgedrückt; wie kriege ich aus 12345 einen Barcode (UPC) hin ?
Grüße Mathias
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Mathias,
hier geht’s los:
http://www.howstuffworks.com/upc.htm
hier steht, wie die Prüfsumme berechnet wird …
http://www.howstuffworks.com/upc1.htm
… hier einige Infos über die erste Ziffer …
http://www.howstuffworks.com/upc2.htm
… und hier steht, wie die einzelnen Ziffern codiert werden:
http://www.howstuffworks.com/upc4.htm
Wenn noch was unklar - weiterfragen.
Gruß, Ralf
Hi Ralf,
vielen Dank. Jetzt fehlt mir nur: wie bekomme ich aus den Zahlen auf einem Canvas die richtigen „Dicken und Dünnen Linien“ hin ? Gibs da auch eine Routine?
Grüsse Mathias
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Mathias,
Jetzt fehlt mir nur: wie bekomme ich aus den
Zahlen auf einem Canvas die richtigen „Dicken und Dünnen
Linien“ hin ? Gibs da auch eine Routine?
wie wär’s mit Canvas.Pen.Width := …, Canvas.MoveTo(…), Canvas-LineTo(…)? Die nötigen Gebrauchshinweise dazu findest Du in der Online-Hilfe.
MfG
Martin
Hallo Martin,
ich hatts schon im anderen (weiter unten) Thread geschrieben; wie ich die Linien hinkriege weiss ich, die Frage ist, nicht das wie sondern „wie“ Schau dir mal ein x-Produkt an, überall ist ein Barcode drauf (IMHO EAN). Ich bräuchte eine Routine der ich einen bereits verarbeiteten Code (3-22-12345-2) gebe (UPC) und die mir dann mittels Canvas().xxx die richtigen dicken und Dünnen Strichel aufmalt. Ich wollt’ das selber mal machen; eine Schriftart (die noch dazu teuer ist) kauf ich erst, wenns wirklich nicht anders geht (da schimpft dann der Finanzminister)
grüsse
Mathias
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Mathias,
Ich bräuchte eine Routine
der ich einen bereits verarbeiteten Code (3-22-12345-2) gebe
(UPC) und die mir dann mittels Canvas().xxx die richtigen
dicken und Dünnen Strichel aufmalt.
ich verstehe ehrlich gesagt nicht ganz Dein Problem. Dein Input liegt also in Form eines Codes wie z. B. 3-22-12345-2 vor. Um nun die gewünschte Routine programmieren zu können, mußt Du Dir zweierlei Know-How aneignen. Erstens mußt Du wissen, wie sich aus einem gegebenen Code das zugehörige Strichmuster ergibt. Die nötigen Informationen findest Du in den Dokumentationen zum betreffenden Code; einen entsprechenden Link hast Du ja schon mitgeteilt bekommen.
Das „zweitens“ ist der programmiertechnische Teil, der von „erstens“ völlig unabhängig ist. Du mußt wissen, wie Du eine Linie der Breite x (z. B. x = 1.3 mm) auf dem Drucker ausgeben kannst. Dazu setzt Du in Delphi „Canvas.Pen.Width“ auf geeignete Werte (z. B. 15) und benutzt die Methoden „Canvas.MoveTo(…)“ sowie „Canvas-LineTo(…)“, wie ich schon sagte. Außerdem bekommst Du es (mindestens) noch mit dem „Printer“-Objekt und den Methoden „Printer.BeginDoc“ und „Printer.EndDoc“ zu tun. Welche Aufgaben die Klassen Canvas und Printer genau erfüllen, und wie man die genannten Methoden konkret aufzurufen hat (Bedeutung der Parameter etc.), erkläre ich Dir hier nicht, denn das steht alles in der Online-Hilfe von Delphi beschrieben.
Wenn Du sowohl über das „erstens“- als auch das „zweitens“-Know-How verfügst, steht der Programmierung der gewünschten Routine nichts mehr im Wege, oder sehe ich das falsch?
Ich hoffe, jetzt sind noch ein paar Klarheiten beseitigt .
Mit freundlichem Gruß
Martin