"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

[PHP] Barcodes generieren

moidaschl 02.05.2005 - 09:09 1619 12
Posts

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
Guten Morgen :)

Wir haben ein Projekt in der Schule geangelt um ein CMS für unsere Fachbibliothek zu erstellen. Das ist ja kein Problem, nur müssen wir auch eigene Barcodes generieren. (Wir haben ein Barcode-Lesegerät zur Verfügung gestellt bekommen, der leider nicht viele Barcodes lesen kann :rolleyes:)
(Laut Lehrer bekommen wir einen Font, mit dem das dann Funktionieren soll)

Da wir einem User aber nicht zumuten können auf jedem System diesen Font zu installieren wenn er über ein Webinterface einen Barcode generieren will, müssen wir wohl oder übel einen anderen Weg finden als einfach den Font zum Download anbieten.

Mir ist eine Idee gekommen, nämlich das Erstellen von Bildern mittels PHP-Funktionen.

Meine Frage:
Ist es möglich einen Text mit diesem Font zu erstelle und den dann in ein Bild umzuwandeln?

Denn das können wir ja dann dem Browser senden und der User kann sich das dann ohne Probleme ausdrucken.

Ideas?

tia,
daschl

that

Moderator
Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11338
Eine Google Suche nach "php gd text" zeigt, dass es eine Funktion "imagettftext" gibt, die angeblich genau das tut.

http://at2.php.net/manual/en/function.imagettftext.php

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
Zitat von that
Eine Google Suche nach "php gd text" zeigt, dass es eine Funktion "imagettftext" gibt, die angeblich genau das tut.

http://at2.php.net/manual/en/function.imagettftext.php

also danke erstmal, das funkt.


wen ich das mal so testhalber 1:1 übernehme und eine neue datei erstelle funktioniert das super.


nur wenn ich das ganze in eine seite einbinde, wo schon code steht macht mir das

// Set the content-type
header("Content-type: image/png");

probleme.

ich muss das aber in dieser seite setzen, damit ich das bild er zeugen kann. wie kann ich das umgehen?

thx

userohnenamen

leider kein name
Avatar
Registered: Feb 2004
Location: -
Posts: 15857
indemst ein popup machst
is vielleicht nicht die userfreundlicheste art und weise, funktioniert aber dann sicher :)

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
Zitat von userohnenamen
indemst ein popup machst
is vielleicht nicht die userfreundlicheste art und weise, funktioniert aber dann sicher :)

ja genau diese idee is mir auch gekommen, nur will ich eine funktion "ausdrucken" dazutun, das funktioniert dann auch nichtmehr...

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14590
eine font zum barcode generiern? ziemliche pfuschlösung.

othan

Layer 8 Problem
Avatar
Registered: Nov 2001
Location: Switzerland
Posts: 4226
kannst das php-file nicht einfach als ganz gewöhliches image einbinden?

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
Zitat von semteX
eine font zum barcode generiern? ziemliche pfuschlösung.

hast eine andere lösung?

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14590
ja aber sie ist ungleich aufwendiger: richtige barcodes brechnen und mit gdlib zeichnen. ich bezieh mich im wesentlichen darauf, dass es bei den barcodes 3 typen gbt

http://de.wikipedia.org/wiki/Strichcode

othan

Layer 8 Problem
Avatar
Registered: Nov 2001
Location: Switzerland
Posts: 4226
ich würd mir das mal genauer ansehen:

http://phpclasses.php-start.de/browse/package/2226.html

is zwar für PDF aber vielleicht lässt sich da was ableiten ;)


/EDIT:

http://www.sid6581.net/cs/php-scripts/barcode/

gue

Addicted
Avatar
Registered: Feb 2003
Location: Linz
Posts: 400
Zitat von moidaschl
also danke erstmal, das funkt.


wen ich das mal so testhalber 1:1 übernehme und eine neue datei erstelle funktioniert das super.


nur wenn ich das ganze in eine seite einbinde, wo schon code steht macht mir das

// Set the content-type
header("Content-type: image/png");

probleme.

ich muss das aber in dieser seite setzen, damit ich das bild er zeugen kann. wie kann ich das umgehen?

thx
Dass du nicht mitten in einem HTML Dokument einen neuen Response Header setzen kannst ist klar. Dazu machst du ein eigenes Skript, das eben diesen Header setzt und nennst es beispielsweise barcode.php.
In deinem HTML-Dokument bindest du es dann mit
<img src="barcode.php?barcode=12345678" alt="12345678" /> ein.

Zitat von semteX
eine font zum barcode generiern? ziemliche pfuschlösung.
Nein.

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14590
was nein? barcodes haben imho A B und ?C? codes... dazu kommen dann noch prüfziffern etc.

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Ich seh' das wie semteX.
Barcodes mit Font kann funktionieren - muss aber nicht. Die unterschiede sind aber in den Barcode-Typen (39, 93, 128, 2-Dimensionale "Bar"codes - steht übrigens alles in deinem Wikipedia-Link) A,B,C sind demnach nur die Zeichensätze im Code128 wenn man Wikipedia vertrauen kann (Was ich normal tue ;))

Die Barcodes über ein "externes" Script als Link einzubinden ist nicht nur wesentlich einfacher (und kompatibler), sondern bietet auch nette Caching-Möglichkeiten. Wenn man die GD intensiver benutzt macht man sich sehr schnell über solche Sachen Gedanken...
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz