newphpcoder Posted March 19, 2013 Share Posted March 19, 2013 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 comment Share on other sites More sharing options...
newphpcoder Posted March 19, 2013 Author Share Posted March 19, 2013 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 comment Share on other sites More sharing options...
newphpcoder Posted March 19, 2013 Author Share Posted March 19, 2013 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 comment Share on other sites More sharing options...
justsomeguy Posted March 19, 2013 Share Posted March 19, 2013 You still need to use the build method, I'm not sure what your question is though. If you have the text for the barcode in a variable then just pass that to build. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now