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 »

Okay, sorry.

Also, die Umrechnung Millimeter>DPI macht PB unter Windows ganz gut.

Unter Windows stimmen die Positionen und Größen der gedruckten Barcodes relativ genau (grob gemessen).
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 glaube der Fehler liegt im Detail.

VectorTextWidth()
Misst die Breite des angegebenen Textes in der aktuellen Vektorzeichnen Schriftart.

Die verwendeten Schriftarten sind unter Linux und Windows nicht identisch.
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 »

Versuche doch mal was kleiners.

Du braucht ja nur die Textgröße 24 ändern.

Ausschnitt aus Beispiel3:

Code: Alles auswählen

;Eine Textzeile hinzufügen
AddElement (Text())
Text()\Text = "Ein EAN13. Ziffernfarbe: 100,100,100"
Text()\Font = "Arial"
Text()\Font_Size = 24
Text()\TextColor_RGB = "0,0,0"
Text()\Text_Style = #PB_Font_Underline|#PB_Font_Italic
Text()\Text_PosX = 30
Text()\Text_PosY = 35
Edit: Ups, da ist sogar ein Fehler drin. :freak: Die Ziffernfarbe ist 0,0,0 und nicht 100,100,100
Zuletzt geändert von Micha122 am 30.03.2018 20:09, 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 »

Text()\Text = "Ein EAN13. Ziffernfarbe: 100,100,100"
Text()\Font = "Comic Sans MS"
Text()\Font_Size = 16

Ausgabe bei Linux:

Text: Ein EAN13. Ziffernfarbe: 100,100,100
Textbreite: 132.1328125
Text: Ein EAN8
Textbreite: 38.017578125


Ausgabe bei Windows:

Text: Ein EAN13. Ziffernfarbe: 100,100,100
Textbreite: 108.7966690063
Text: Ein EAN8
Textbreite: 30.8186664581

Es unterscheiden sich jegliche Maße bei Windows und Linux.

Aber mit geringen Maßen klappt es auch unter Linux.

:allright:

Tja, der Fehler liegt halt im Detail.

Anbei:

Die verwendeten Fonts sind doch absolut identisch. Es sind die selben wie unter Windows.

Der Fehler muss in einer internen Berechnung (Umrechnung) der Vector-Funktion liegen.
Zuletzt geändert von ccode_new am 30.03.2018 20:16, insgesamt 1-mal geändert.
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 »

Super!
Vielen Dank das Du solange durchgehalten hast. :praise:

Werde es auf der Webseite und im ersten Beitrag vermerken.
Barcodes for PureBasic - http://micha122.bplaced.net/
Micha122
Beiträge: 248
Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Kontaktdaten:

Re: Barcode Modul

Beitrag von Micha122 »

ich denke mal, das der Text unterhalb des Barcodes immer noch breiter ist als der Barcode selber (Dein Video>Beispiel5).
Dafür sind nämlich andere Programmzeilen verantwortlich.

Ich hätte das Modul auch gerne auf Linux richtig.

Wenn Du Zeit hast, gib bitte noch mal kurz Rückmeldung.

Grüße
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 würde mir wünschen wenn noch andere Linuxianer dein Modul testen würden.

Bei mir liefen auch die TextHeight() und TextWidth() - Befehle von "2DDrawing" falsche Werte.

Nur so zum Beispiel:
Bei Font: LoadFont(0, "Comic Sans MS", 16)

bekomme ich unter Linux: 111 und bei Windows: 109

Daher wäre es schön wenn es noch Antworten von anderen Linux-Nutzern gäbe.

Ich verwende zum Testen auch die selben Font-Dateien wie unter Windows.
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:Ich würde mir wünschen wenn noch andere Linuxianer dein Modul testen würden.
Das wäre natürlich der Idealfall.

Für die Textgröße unterhalb des Barcodes ist maßgeblich Zeile 673 im Modul verantwortlich.

Code: Alles auswählen

Font_Height.i = Round(Barcode()\Width /5, #PB_Round_Nearest)
Wenn Du den Wert 5 erhöhst, beispielsweise auf 6,7 oder 8 sollte der Text immer kleiner werden.

Unter Windows habe ich damit quasi einen dynamischen Font erzeugt der immer passt egal wie breit der Barcode wird.

Wenns was bringt könnte ich das dauerhaft mit einer Compiler Direktive verankern.
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 mal noch ein paar Linux-Einstellungen: (Eigentlich Standard)

Bild

Bild
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 »

Das Problem mit zu großen Schriftarten aber auch Gadgets hatte Linux vor Jahren schon.
Ich kann mich da noch genau dran erinnern.
Ich konnte keine einzige GUI die ich unter Windows gemacht hatte auf Linux so ohne weiteres einsetzen.
Was unter Windows schön aussah, sah unter Linux sch.... aus. Und umgekehrt das selbe. :cry:
Barcodes for PureBasic - http://micha122.bplaced.net/
Antworten