Seite 7 von 8

Re: Barcode Modul

Verfasst: 13.04.2018 11:30
von Micha122
nicolaus hat geschrieben:Verstehe ich das somit richtig und es ist aktuell "nur" möglich zu Drucken oder als SVG zu exportieren?
Ja, ist momentan so.
Die Druckfunktion unterstützt aktuell EAN8/13, Code128 sowie frei definierbare Textzeilen.
Der SVG-Export funktioniert aktuell nur mit Code128.
nicolaus hat geschrieben:Genial wäre auch eine Option wo mir der Barcode als PNG im Speicher zurückgegeben wird.
Die Idee ist gut. :allright:
nicolaus hat geschrieben:Wäre es möglich das Modul zu erweitern, so dass du den Barcode auch als PNG im Speicher hältst und das Handel dessen zurück gibst (z.b. mit CreateImage() )?
Wie ich es schon schrieb, die Idee gefällt mir.
Werde ich heute Abend einbauen. :wink:

Re: Barcode Modul

Verfasst: 13.04.2018 18:11
von nicolaus
Micha122 hat geschrieben: Wie ich es schon schrieb, die Idee gefällt mir.
Werde ich heute Abend einbauen. :wink:
+1

Re: Barcode Modul

Verfasst: 13.04.2018 22:30
von Micha122
Hier vorab ein Screenshot meiner Umsetzung der Idee von @nicolaus.


Bild

Die neue Funktion Barcode_Image_Export() wird mit allen unterstützten Barcodes funktionieren.

Möchte noch ein wenig testen, weshalb neue Version des Moduls erst morgen online ist.

Grüße, Michael

Re: Barcode Modul

Verfasst: 13.04.2018 22:36
von nicolaus
Micha122 hat geschrieben:Hier vorab ein Screenshot meiner Umsetzung der Idee von @nicolaus.


Bild

Die neue Funktion Barcode_Image_Export() wird mit allen unterstützten Barcodes funktionieren.

Möchte noch ein wenig testen, weshalb neue Version des Moduls erst morgen online ist.

Grüße, Michael
Schon mal genial, DANKE!

Noch eine Frage, kann man den Text des Barcodes auch weg lassen, sprich ist das eine Option oder ist der Text immer da?
Hintergrund ist das in meinem Fall die MAC Adresse des BT Dongles als Barcode hinterlegt ist und ich möchte nicht das normale User diese sehen.

Danke schon mal

Re: Barcode Modul

Verfasst: 13.04.2018 22:53
von Micha122
nicolaus hat geschrieben:Noch eine Frage, kann man den Text des Barcodes auch weg lassen, sprich ist das eine Option oder ist der Text immer da?
Das ist kein Problem, funktioniert auch beim SVG-Export oder Drucken. :D
Einfach "Image_Export\Text" nicht benutzen bzw. einen leeren String eintragen.

Bild

Re: Barcode Modul

Verfasst: 14.04.2018 14:36
von Micha122
Neue Version mit Image-Export für alle unterstützten Barcodes ist online. :D

Die Benutzung ist sehr einfach.
Hier ein Beispiel (Code128):

Code: Alles auswählen

IncludeFile "C:\Users\Micha\Desktop\Barcode_Module\Source\Barcode_Modul 1.3.0.pbi"

EnableExplicit
UseModule Common
UseModule Barcode

Define Code128.s, Code128_Sequence.s, Checksum.i, Result.i, Event.i, quit.i, width.d, height.d, Image_Number.i

;Prüfziffer berechnen
Define Checksum = Generate_Code128_Checksum(#BC128_StartB + #BC128_FNC4 + "Dein Text oder sonstiges")
If Checksum > 99
  Debug "Fehler Generate_Code128_Checksum(): " + Checksum
  End
EndIf

;Linien-Sequenz generieren
Code128_Sequence.s = Generate_Code128_Sequence(#BC128_StartB + #BC128_FNC4 + "Dein Text oder sonstiges" + #BC128_Checksum + Str(Checksum) + #BC128_Stop)
If Code128_Sequence.s = "26" Or Code128_Sequence.s = "27" Or Code128_Sequence.s = "28" Or Code128_Sequence.s = "29" Or Code128_Sequence.s = "30"
  Debug "Fehler Generate_Code128_Sequence(): " + Code128_Sequence.s
  End
EndIf

;Benötigten Parameter in die Struktur Image_Parameter
Define Image_Export.Image_Parameter
Image_Export\Type = #BCODE_Type_Code128                 ;Beispiel: Konstante #BCODE_Type_EAN13
Image_Export\Text = "Dein Text oder sonstiges"          ;Die Code Ziffern/Buchstaben. Beispiel EAN8: "72395677"
Image_Export\Font = "ocrB"                              ;Beispiel: "ocrB". Die Größe wird automatisch angepasst. Wird kein Font angegeben, Wird der Code OHNE Ziffern gedruckt
Image_Export\Sequence = Code128_Sequence.s              ;Die zuvor erzeugte Linien Sequenz.
Image_Export\Width = 150                                ;Die Barcode Breite in Millimeter
Image_Export\Height = 50                                ;Die Barcode Höhe in Millimeter
Image_Export\Color0 = "255,255,255"                     ;Farbe der hellen Code Linien. Beispiel: "255,255,255". Komma = Trennzeichen
Image_Export\Color1 = "0,0,0"                           ;Farbe der dunklen Code Linien. Beispiel: "0,0,0". Komma = Trennzeichen
Image_Export\ColorDigits = "0,0,0"                      ;Farbe der Code Ziffern. Beispiel: "0,0,0". Komma = Trennzeichen

;Umrechnung Millimeter zu Pixel bei 96 DPI
width.d = Image_Export\Width / 25.4 * 96
height.d = Image_Export\Height / 25.4 * 96

;Bild erstellen
Image_Number.i = CreateImage(#PB_Any, width.d, height.d, 24, RGB(255,255,255))
Image_Export\Image_Number = Image_Number.i

;Den Barcode zeichnen lassen
Result.i = Barcode_Image_Export(Image_Export)
If Result.i <> 1
  Debug "Fehler Barcode_Image_Export(): " + Result.i
  End
EndIf

;Fenster mit Image-Gadget öffnen
If OpenWindow(0, 0, 0, width.d + 30, height.d + 30, "Code128 Bitmap Demo", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget) 
  ImageGadget(0,  15, 15, 0, 0, ImageID(Image_Number.i)) 
  Repeat
    Event = WaitWindowEvent()  
    If Event.i = #PB_Event_CloseWindow
      quit.i = 1
    EndIf   
  Until quit.i = 1  
EndIf

End 
Weitere Beispiele findet Ihr dort: http://micha122.bplaced.net/?Beispiele

Grüße, Michael

Re: Barcode Modul

Verfasst: 15.04.2018 19:42
von nicolaus
Micha122 hat geschrieben:Neue Version mit Image-Export für alle unterstützten Barcodes ist online. :D

Die Benutzung ist sehr einfach.
Hier ein Beispiel (Code128):

Code: Alles auswählen

IncludeFile "C:\Users\Micha\Desktop\Barcode_Module\Source\Barcode_Modul 1.3.0.pbi"

EnableExplicit
UseModule Common
UseModule Barcode

Define Code128.s, Code128_Sequence.s, Checksum.i, Result.i, Event.i, quit.i, width.d, height.d, Image_Number.i

;Prüfziffer berechnen
Define Checksum = Generate_Code128_Checksum(#BC128_StartB + #BC128_FNC4 + "Dein Text oder sonstiges")
If Checksum > 99
  Debug "Fehler Generate_Code128_Checksum(): " + Checksum
  End
EndIf

;Linien-Sequenz generieren
Code128_Sequence.s = Generate_Code128_Sequence(#BC128_StartB + #BC128_FNC4 + "Dein Text oder sonstiges" + #BC128_Checksum + Str(Checksum) + #BC128_Stop)
If Code128_Sequence.s = "26" Or Code128_Sequence.s = "27" Or Code128_Sequence.s = "28" Or Code128_Sequence.s = "29" Or Code128_Sequence.s = "30"
  Debug "Fehler Generate_Code128_Sequence(): " + Code128_Sequence.s
  End
EndIf

;Benötigten Parameter in die Struktur Image_Parameter
Define Image_Export.Image_Parameter
Image_Export\Type = #BCODE_Type_Code128                 ;Beispiel: Konstante #BCODE_Type_EAN13
Image_Export\Text = "Dein Text oder sonstiges"          ;Die Code Ziffern/Buchstaben. Beispiel EAN8: "72395677"
Image_Export\Font = "ocrB"                              ;Beispiel: "ocrB". Die Größe wird automatisch angepasst. Wird kein Font angegeben, Wird der Code OHNE Ziffern gedruckt
Image_Export\Sequence = Code128_Sequence.s              ;Die zuvor erzeugte Linien Sequenz.
Image_Export\Width = 150                                ;Die Barcode Breite in Millimeter
Image_Export\Height = 50                                ;Die Barcode Höhe in Millimeter
Image_Export\Color0 = "255,255,255"                     ;Farbe der hellen Code Linien. Beispiel: "255,255,255". Komma = Trennzeichen
Image_Export\Color1 = "0,0,0"                           ;Farbe der dunklen Code Linien. Beispiel: "0,0,0". Komma = Trennzeichen
Image_Export\ColorDigits = "0,0,0"                      ;Farbe der Code Ziffern. Beispiel: "0,0,0". Komma = Trennzeichen

;Umrechnung Millimeter zu Pixel bei 96 DPI
width.d = Image_Export\Width / 25.4 * 96
height.d = Image_Export\Height / 25.4 * 96

;Bild erstellen
Image_Number.i = CreateImage(#PB_Any, width.d, height.d, 24, RGB(255,255,255))
Image_Export\Image_Number = Image_Number.i

;Den Barcode zeichnen lassen
Result.i = Barcode_Image_Export(Image_Export)
If Result.i <> 1
  Debug "Fehler Barcode_Image_Export(): " + Result.i
  End
EndIf

;Fenster mit Image-Gadget öffnen
If OpenWindow(0, 0, 0, width.d + 30, height.d + 30, "Code128 Bitmap Demo", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget) 
  ImageGadget(0,  15, 15, 0, 0, ImageID(Image_Number.i)) 
  Repeat
    Event = WaitWindowEvent()  
    If Event.i = #PB_Event_CloseWindow
      quit.i = 1
    EndIf   
  Until quit.i = 1  
EndIf

End 
Weitere Beispiele findet Ihr dort: http://www.micha122.bplaced.net/?Beispiele

Grüße, Michael

Genial und vielen Dank für die schnelle Umsetzung!!!
+1

Re: Barcode Modul

Verfasst: 15.04.2018 23:14
von Micha122
Das war mehr oder weniger nur eine Copy/Paste - Sache mit nen paar Anpassungen. :wink:

Ich selber werde Barcode_Image_Export() sicherlich kaum benutzen...... ich habe in der Praxis leider keine Verwendung dafür. :oops:

Es liegt also an Dir/Euch die Funktion zu verbessern, zum Beispiel mit Bug-Meldungen oder Ideen. :wink:

Grüße, Michael

Re: Barcode Modul

Verfasst: 04.10.2019 11:09
von MenschMarkus
Hm,
Micha122, Dein Link funtioniert nicht :roll: . Bitte einmal aktualisieren :| .
Danke

Re: Barcode Modul

Verfasst: 04.10.2019 12:48
von RSBasic
Schau mal hier: https://www.rsbasic.de/backups/
Und suche nach "Barcode".