2010-01-19 11 views
9

Ich benötige eine Klasse, die Barcodebilddateien generiert, vorzugsweise kompatibel mit den gängigsten Standards.PHP Barcode Image Generator

Ich bin auf der Suche nach Empfehlungen/Anregungen basierend auf persönlichen Erfahrungen mit solchen Dingen.

Vielen Dank

Antwort

2

Wenn Sie immer noch nach einer Lösung suchen, habe ich mit this (angepasst die ASP.NET-Version) gearbeitet und es generiert EAN-Codes ohne Probleme.

+0

Es ist nicht frei für die kommerzielle Nutzung. – SAMPro

8

Hier ist ein einfacher PHP-Skript zur Erzeugung barocdes:

<?php 
//For displaying barcodes 

//Arguments are: 
// code Number you want outputted as a barcode 

//You can use this script in two ways: 
// From a webpage/PHP script <img src='/images/barcode.php?code=12345'/> 
// Directly in your web browser http://www.example.com/images/barcode.php?code=12345 

//Outputs the code as a barcode, surrounded by an asterisk (as per standard) 
//Will only output numbers, text will appear as gaps 
//Image width is dynamic, depending on how much data there is 

//Get the barcode font (called 'free3of9') from here http://www.barcodesinc.com/free-barcode-font/ 

header("Content-type: image/png"); 
$file = "images/barcode.png"; // path to base png image 
$im = imagecreatefrompng($file); // open the blank image 
$string = $_GET['code']; // get the code from URL 
imagealphablending($im, true); // set alpha blending on 
imagesavealpha($im, true); // save alphablending setting (important) 

$black = imagecolorallocate($im, 0, 0, 0); // colour of barcode 

$font_height=40; // barcode font size. anything smaller and it will appear jumbled and will not be able to be read by scanners 

$newwidth=((strlen($string)*20)+41); // allocate width of barcode. each character is 20px across, plus add in the asterisk's 
$thumb = imagecreatetruecolor($newwidth, 40); // generate a new image with correct dimensions 

imagecopyresized($thumb, $im, 0, 0, 0, 0, $newwidth, 40, 10, 10); // copy image to thumb 
imagettftext($thumb, $font_height, 0, 1, 40, $black, 'c:\windows\fonts\free3of9.ttf', '*'.$string.'*'); // add text to image 

//show the image 
imagepng($thumb); 
imagedestroy($thumb); 
?> 

Hope this Ihnen hilft.

+1

ich bin mitten in der Entwicklung eines einfachen Ticket-Barcode-Scan-Projekt. Weißt du, ob alle Handscanner die gleiche Nummer wieder lesen? PS: Ich habe noch keinen Handscanner. – alex

+0

@alex Diese Antwort bezieht sich auf die Schrift '3 of 9'. 3 of 9, oder Code 39, ist ein weithin akzeptierter Barcode-Standard und kann von fast jedem Barcode-Scanner gelesen werden. Alle Scanner lesen den gleichen Wert. – BinaryTox1n

+0

Wie wäre es, wenn wir das Bild in einer Disc in einem Ordner speichern müssen, damit wir später einen Hinweis darauf bekommen können? –

1

Hier gibt es eine freie lib, die PHP-Klasse, jQuery-Plugin und Prototyp-Plugin haben. Es hat sehr schöne Beispiele zu visit