Barcode Modul

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Micha122
Beiträge: 248
Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Kontaktdaten:

Re: Barcode Modul

Beitrag von Micha122 »

Hallo mk-soft,
wiedermal danke fürs testen. :allright:
Ich gehe deshalb mal einfach davon aus, das der Code auf macOS funktioniert. :?:



Hallo ccode_new,
Auch Dir danke fürs testen. :allright:
ccode_new hat geschrieben:Ich bekomme lediglich bei den Beispielen 3 und 4 einen Fehlercode 19 geliefert.
Hmmm, unter Windows x64 kein Problem. :oops:
Ich habe das Modul noch nicht auf x86 getestet.
Ist Dein Linux x86, 32bit?
ccode_new hat geschrieben:Zitat:
Mehrere Bracodes, Textzeilen und Styles auf einer Seite.


ist ein kleiner Buchstabendreher versteckt.
Werde ich korrigieren.
Barcodes for PureBasic - http://micha122.bplaced.net/
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Barcode Modul

Beitrag von ccode_new »

Hier einmal ein kleines Test-Video dazu:

Linux-Barcodemodul-Test
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Micha122
Beiträge: 248
Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Kontaktdaten:

Re: Barcode Modul

Beitrag von Micha122 »

Hallo ccode_new,
zunächst vielen dank für Deine Arbeit!

Ich habe das Modul und die Beispiele unterdessen auch mal auf Windows7 x86 getestet.
Okay, hatte dort nur PB 5.6 (ca. 1 Jahr alt), aber hat alles funktioniert. Keine Fehlermeldung. :oops:

Mir ist in Deinem Video (Beispiel5 - Hallo PB-Gemeinde 2018) aufgefallen, das der Barcode-Text in keinem Verhältnis zum Barcode steht (viel zu groß).

Ich hatte mal kurzzeitig eine fehlerhafte Modul-Version in meiner Dropbox die genau solche Fehler produzierte.

Bitte überprüfe ob Du wirklich die aktuelle Version von der Webseite benutzt!

Info: Bitte nicht nach der Versionsnummer gehen, die war identisch. :oops:

Nochmals vielen Dank fürs testen. :allright:
Barcodes for PureBasic - http://micha122.bplaced.net/
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Barcode Modul

Beitrag von ccode_new »

1. Ich verwende ein x64 - Betriebsystem.
2. Ich habe es mit der aktuelle Version: Letzte Bearbeitung: 30.03.2018, 16:02 (und der Version davor) getestet.

-> Ich bekomme bei Beispiel 3 und 4 (egal ob mit echten Drucker (auch mit Randlosdruck-Einstellung) oder per PDF-Print den Fehler 19.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Micha122
Beiträge: 248
Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Kontaktdaten:

Re: Barcode Modul

Beitrag von Micha122 »

Ich habe mal Beispiel3 und das Modul an diversen Stellen mit Debug Befehlen versehen um das ganze einzugrenzen.
Download: http://www.micha122.bplaced.net/userfil ... ersion.rar

Bitte sende mir die Debug-Ausgabe.
Barcodes for PureBasic - http://micha122.bplaced.net/
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Barcode Modul

Beitrag von ccode_new »

Hier die Debug-Ausgabe:

Text: Ein EAN13. Ziffernfarbe: 100,100,100
Textbreite: 188.26953125
Fehler: Ein EAN13. Ziffernfarbe: 100,100,100
Fehler Print Barcode:19
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Micha122
Beiträge: 248
Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Kontaktdaten:

Re: Barcode Modul

Beitrag von Micha122 »

Bingo! Meine Vermutung war richtig. :D

Dieser Text geht bei Dir über den bedruckbaren Bereich hinaus.
Ein EAN13. Ziffernfarbe: 100,100,100
Ich weiß nicht warum, aber die PB-Funktion <VectorTextWidth> liefert bei Dir unter Linux
eine völlig andere Textbreite als bei mir unter Win 7 und 10.

Meine Debug-Ausgabe:
Text: Ein EAN13. Ziffernfarbe: 100,100,100
Textbreite: 141.2006530762
Text: Ein EAN8
Textbreite: 21.51496315
Textbreite unter Windows: 141.2006530762 mm
Textbreite unter Linux: 188.26953125 mm :?: :?:

Dieser Code ist für die Ausgabe der Textzeilen verantwortlich:

Code: Alles auswählen

     ;********************************************************************************************************************
      ; Texte drucken                                                                                                     *
      ;********************************************************************************************************************
      ForEach Text()
        ;Zeichensatz für Text_Line laden und Text zeichnen
        If Text()\Font <> ""
          Text_Font.i = LoadFont(#PB_Any, Text()\Font, Text()\Font_Size, Text()\Text_Style)
          If Text_Font.i = 0
            ProcedureReturn 17
          EndIf
          Text_FontID.i = FontID(Text_Font.i)
        EndIf
        VectorFont(Text_FontID.i)
        Text_width.d = VectorTextWidth(Text()\Text)
        Debug "Text: " + Text()\Text
        Debug "Textbreite: " + Text_width.d
        Text_height.d = VectorTextHeight(Text()\Text)     
        MovePathCursor(Text()\Text_PosX , Text()\Text_PosY) 
        VectorSourceColor(RGBA(Val(StringField(Text()\TextColor_RGB, 1, ",")), Val(StringField(Text()\TextColor_RGB, 2, ",")), Val(StringField(Text()\TextColor_RGB, 3, ",")), 255))
        DrawVectorText(Text()\Text)
        FreeFont(#PB_All)
        ;Prüfen ob der Text im Druckbereich liegt.
        If Text()\Text_PosX < *Printer\Left_edge
          ProcedureReturn 18
        ElseIf Text()\Text_PosX + Text_width.d > *Printer\Page_width - *Printer\Right_edge
          Debug "Fehler: " + Text()\Text
          ProcedureReturn 19
        ElseIf Text()\Text_PosY < *Printer\Top_edge
          ProcedureReturn 20
        ElseIf Text()\Text_PosY + Text_height.d > *Printer\Page_height - *Printer\Upper_edge
          ProcedureReturn 21
        EndIf
      Next
      ;********************************************************************************************************************
      ; Texte drucken Ende                                                                                                *
      ;********************************************************************************************************************
Zuletzt geändert von Micha122 am 30.03.2018 19:36, insgesamt 1-mal geändert.
Barcodes for PureBasic - http://micha122.bplaced.net/
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Barcode Modul

Beitrag von ccode_new »

Scheint wohl ein PureBasic-Bug zu sein.

Meine Text und DPI Einstellungen sind Windows identisch (Daran kann es nicht liegen.)

Auch andere Dokumente werden korrekt skaliert ausgedruckt.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Micha122
Beiträge: 248
Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Kontaktdaten:

Re: Barcode Modul

Beitrag von Micha122 »

ccode_new hat geschrieben:Meine Text und DPI Einstellungen sind Windows identisch (Daran kann es nicht liegen.)
Welche DPI Angaben? :shock:

Alle Positionen und Größen werden in Millimeter angegeben.
Barcodes for PureBasic - http://micha122.bplaced.net/
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Barcode Modul

Beitrag von ccode_new »

Ich meine dabei meine Drucker-Treiber-Einstellungen.

(Die aber bei PDF-Print eigentlich auch egal sein sollten.)
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Antworten