[PHP] Barcodes generieren
moidaschl 02.05.2005 - 09:09 1619 12
moidaschl
Vollzeit-Hackler
|
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 ) (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
ModeratorHoffnungsloser Optimist
|
|
moidaschl
Vollzeit-Hackler
|
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
|
indemst ein popup machst is vielleicht nicht die userfreundlicheste art und weise, funktioniert aber dann sicher
|
moidaschl
Vollzeit-Hackler
|
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
|
eine font zum barcode generiern? ziemliche pfuschlösung.
|
othan
Layer 8 Problem
|
kannst das php-file nicht einfach als ganz gewöhliches image einbinden?
|
moidaschl
Vollzeit-Hackler
|
eine font zum barcode generiern? ziemliche pfuschlösung. hast eine andere lösung?
|
semteX
begehrt die rostschaufel
|
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
|
|
gue
Addicted
|
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. eine font zum barcode generiern? ziemliche pfuschlösung. Nein.
|
semteX
begehrt die rostschaufel
|
was nein? barcodes haben imho A B und ?C? codes... dazu kommen dann noch prüfziffern etc.
|
watchout
Legendundead
|
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...
|