Jump to content

Need help in generating barcode


Recommended Posts

Hi,Good day!I found a sample code in generating barcode.here's the link:http://www.brandonchecketts.com/archives/quick-php-script-to-generate-a-barcodeand this is the code:

<?php$number = isset($_GET['number']) ? $_GET['number'] : '';$barcode_font = dirname(__FILE__).'/fonts/FREE3OF9.TTF';$plain_font   = dirname(__FILE__).'/fonts/plain.pfb';$width = 200;$height = 80;$img = imagecreate($width, $height);// First call to imagecolorallocate is the background color$white = imagecolorallocate($img, 255, 255, 255);$black = imagecolorallocate($img, 0, 0, 0);// Reference for the imagettftext() function// imagettftext($img, $fontsize, $angle, $xpos, $ypos, $color, $fontfile, $text);imagettftext($img, 36, 0, 10, 50, $black, $barcode_font, $number);imagettftext($img, 14, 0, 40, 70, $black, $plain_font, $number);header('Content-type: image/png');imagepng($img);imagedestroy($img);?>

fisrt i got an error at because I don't have plain.pfb, i don't know where i can download that font. and when I tried to change it to pala.tff and I run the code the error was gone bt the output is blank.I need to create a barcode. It's my first time to create a barcode using php.Any help is highly appreciated.Thank you so much.

Link to post
Share on other sites

Hi... I saw this thread I tried this code:

<?php $bc = new barCode();$bc->build('LO130319001'); class barCode{    public $bcHeight, $bcThinWidth, $bcThickWidth, $bcFontSize, $mode;       function __construct($mode='gif', $height=25, $thin=1, $thick=2, $fSize=1)    {	    $this->bcHeight = $height;	    $this->bcThinWidth = $thin;	    $this->bcThickWidth = $this->bcThinWidth * $thick;	    $this->fontSize = $fSize;	    $this->mode = $mode;	    $this->outMode = array('gif'=>'gif', 'png'=>'png', 'jpeg'=>'jpeg', 'wbmp'=>'vnd.wap.wbmp');	    $this->codeMap = array(		    '0'=>'000110100',    '1'=>'100100001',    '2'=>'001100001',    '3'=>'101100000',		    '4'=>'000110001',    '5'=>'100110000',    '6'=>'001110000',    '7'=>'000100101',   		    '8'=>'100100100',    '9'=>'001100100',    'A'=>'100001001',    'B'=>'001001001',		    'C'=>'101001000',    'D'=>'000011001',    'E'=>'100011000',    'F'=>'001011000',		    'G'=>'000001101',    'H'=>'100001100',    'I'=>'001001100',    'J'=>'000011100',		    'K'=>'100000011',    'L'=>'001000011',    'M'=>'101000010',    'N'=>'000010011',		    'O'=>'100010010',    'P'=>'001010010',    'Q'=>'000000111',    'R'=>'100000110',		    'S'=>'001000110',    'T'=>'000010110',    'U'=>'110000001',    'V'=>'011000001',		    'W'=>'111000000',    'X'=>'010010001',    'Y'=>'110010000',    'Z'=>'011010000',		    ' '=>'011000100',    '$'=>'010101000',    '%'=>'000101010',    '*'=>'010010100',		    '+'=>'010001010',    '-'=>'010000101',    '.'=>'110000100',    '/'=>'010100010'		    );	       }       public function build($text='', $showText=false, $fileName=null)    {	    if (trim($text) <= ' ')		    throw new exception('barCode::build - must be passed text to operate');	    if (!$fileType = $this->outMode[$this->mode])		    throw new exception("barCode::build - unrecognized output format ({$this->mode})");	    if (!function_exists("image{$this->mode}"))		    throw new exception("barCode::build - unsupported output format ({$this->mode} - check phpinfo)");	   	    $text  =  strtoupper($text);	    $dispText = "* $text *";	    $text = "*$text*"; // adds start and stop chars	    $textLen  =  strlen($text);	    $barcodeWidth  =  $textLen * (7 * $this->bcThinWidth + 3 * $this->bcThickWidth) - $this->bcThinWidth;	    $im = imagecreate($barcodeWidth, $this->bcHeight);	    $black = imagecolorallocate($im, 0, 0, 0);	    $white = imagecolorallocate($im, 255, 255, 255);	    imagefill($im, 0, 0, $white);	   	    $xpos = 0;	    for ($idx=0; $idx<$textLen; $idx++)	    {		    if (!$char = $text[$idx]) $char = '-';		    for ($ptr=0; $ptr<=8; $ptr++)		    {			    $elementWidth = ($this->codeMap[$char][$ptr]) ? $this->bcThickWidth : $this->bcThinWidth;			    if (($ptr + 1) % 2)				    imagefilledrectangle($im, $xpos, 0, $xpos + $elementWidth-1, $this->bcHeight, $black);			    $xpos += $elementWidth;		    }		    $xpos += $this->bcThinWidth;	    }    		    if ($showText)	    {		    $pxWid = imagefontwidth($this->fontSize) * strlen($dispText) + 10;		    $pxHt = imagefontheight($this->fontSize) + 2;		    $bigCenter = $barcodeWidth / 2;		    $textCenter = $pxWid / 2;		    imagefilledrectangle($im, $bigCenter - $textCenter, $this->bcHeight - $pxHt, $bigCenter + $textCenter, $this->bcHeight, $white);		    imagestring($im, $this->fontSize, ($bigCenter - $textCenter) + 5, ($this->bcHeight - $pxHt) + 1, $dispText, $black);	    } 	    if (!$fileName) header("Content-type:  image/{$fileType}");	    switch($this->mode)	    {		    case 'gif': imagegif($im, $fileName);		    case 'png': imagepng($im, $fileName);		    case 'jpeg': imagejpeg($im, $fileName);		    case 'wbmp': imagewbmp($im, $fileName);	    } 	    imagedestroy($im);		    }} ?> 

as you can see $bc->build('LO130319001'); but when I tried to scan the barcode the output become LO13-319—1 the 0 become – before this is my code:

$sql = "SELECT r.lot_number, m.mat_code, m.description FROM wms_receiving AS r LEFT JOIN bom_material AS m ON r.uid_mat = m.uid_mat WHERE r.rm_id = " . $_SESSION["rm_id"];		    $res = mysql_query($sql); 		    $row = mysql_fetch_assoc($res);		   		    $labelprint = "<table>";		    $labelprint .= "<tr><td><strong> Lot # : </strong></td><td> $row[lot_number] </td></tr>";		 //   $labelprint .= "<tr><td><strong> Stock Item : </strong></td><td> $row[mat_code] </td></tr><tr><td><strong> Stock Desc. : </strong></td><td> $row[description] </td></tr>";		 $description_to_print =htmlspecialchars($row[description], ENT_QUOTES);		 $labelprint .= "<tr><td><strong> Stock Item : </strong></td><td> $row[mat_code] </td></tr><tr><td><strong> Stock Desc. : </strong></td><td> $description_to_print</td></tr>";				    $labelprint .= "</table>";		    unset($_POST);

Now I need to put the Lot number into barcode. How can I used the above code in generating barcode. Thank you so much

Link to post
Share on other sites

Hi,I resolved my first problem which is 0 become -. I just exchange the value of 0 and -.Now my problem is how can I put the lot_number value from my database to barcode value which handled by $text. I mean no need to declare to : $bc->build('LO130319001'); manually.I just get the lotnumber value to:$_SESSION["rm_id"] = mysql_insert_id(); $sql = "SELECT r.lot_number, m.mat_code, m.description FROM wms_receiving AS r LEFT JOIN bom_material AS m ON r.uid_mat = m.uid_mat WHERE r.rm_id = " . $_SESSION["rm_id"]; $res = mysql_query($sql); $row = mysql_fetch_assoc($res);$lot_number = $row['lot_number'];Thank you so much

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...