[PHP] Barcodes generieren
    
		
    
       moidaschl  02.05.2005 - 09:09  1840  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
      Hoffnungsloser 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 machstis 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
      hasst die KI   | 
         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
      hasst die KI   | 
         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 gbthttp://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
      hasst die KI   | 
         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...
     |