www.webdeveloper.com
Results 1 to 6 of 6

Thread: Need help in generating barcode

  1. #1
    Join Date
    Oct 2011
    Posts
    357

    Need help in generating barcode

    Hi,


    Good day!

    I found a sample code in generating barcode.

    here's the link:

    http://www.brandonchecketts.com/arch...rate-a-barcode

    and this is the code:
    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.

  2. #2
    Join Date
    Oct 2011
    Posts
    357
    Hi...

    I saw this thread I tried this code:

    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-3191 the 0 become

    before this is my code:

    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

  3. #3
    Join Date
    Oct 2011
    Posts
    357
    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

  4. #4
    Join Date
    Aug 2013
    Posts
    30
    eh,i have not meet this kind of question,but i know a resource about php barcode generator script,you may have a look

  5. #5
    Join Date
    Oct 2013
    Posts
    1
    Here is a professional barcode resource.

  6. #6
    Join Date
    Dec 2013
    Posts
    5
    May I ask what type of barcode you are trying to generate. Cuz I have a PHP QR Code Generator Script here, and the tutorial helped a lot. Take a look if you are still looking for solutions. Might be helpful

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center

"

"

X vBulletin 4.2.2 Debug Information

  • Page Generation 0.33686 seconds
  • Memory Usage 2,900KB
  • Queries Executed 15 (?)
More Information
Template Usage (33):
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (3)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (6)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (6)postbit
  • (6)postbit_onlinestatus
  • (6)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (72):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates