2010-01-19 3 views
9

Мне нужен класс, который будет генерировать файлы изображений штрих-кодов, предпочтительно совместимые с наиболее распространенными стандартами.PHP генератор изображений штрих-кода

Я ищу рекомендации/предложения, основанные на личном опыте с такими вещами.

Большое спасибо

ответ

2

Если вы все еще ищете решение для этого, я работал с this (адаптировал версию ASP.NET), и он сгенерировал коды EAN без проблем.

+0

Это не бесплатно для коммерческого использования. – SAMPro

8

Вот простой PHP скрипт для генерации 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); 
?> 

Надеется, что это помогает.

+1

Я нахожусь в центре разработки простого проекта сканирования штрих-кода билета. Знаете ли вы, что все ручные колонки будут читать тот же номер обратно? ps: У меня пока нет ручного телефона. – alex

+0

@alex Этот ответ ссылается на шрифт '3 of 9'. 3 из 9 или код 39, является широко распространенным стандартом штрих-кода и может быть прочитан практически любым сканером штрих-кода. Все сканеры будут считывать одно и то же значение. – BinaryTox1n

+0

Как насчет того, если нам нужно изображение для хранения на диске, в какой-то папке, чтобы мы могли позже получить ссылку на него? –

1

Здесь есть бесплатный lib, который имеет php-класс, плагин jQuery и прототип плагина. Он имеет очень хорошие примеры тоже visit

Смежные вопросы