i want to generate barcode in my codeigniter application, when i include Zend libraries and rendered barcode its not rendered and its give error that
The image ...cannot displayed its contain errors
when i use same code and libraries in new codeigniter project its works properly and generate barcode successfully.
Why this happens?
My code is:
function gen_barcode()
{
//I'm just using rand() function for data example
$temp = rand(10000, 99999);
$this->set_barcode($temp);
}
private function set_barcode($code)
{
//load library
$this->load->library('zend');
//load in folder Zend
$this->zend->load('Zend/Barcode');
////generate barcode
Zend_Barcode::render('code128', 'image', array('text'=>$code), array());
}
If you have got it from here https://github.com/desta88/Codeigniter-Barcode-Generator-Zend-Library
1: On the zend library remove CI from CI_Zend
Filename Zend.php
<?php if( ! defined('BASEPATH')) exit('No direct script access allowed');
class Zend { // remove CI_
public function __construct($class = NULL)
{
ini_set('include_path',
ini_get('include_path'). PATH_SEPARATOR. APPPATH. 'libraries');
if($class)
{
require_once(string) $class.'.php'; //fixed CI 3 issue by lilsammy
log_message('debug', "Zend Class $class Loaded");
}else
{
log_message('debug', "Zend Class Initialized");
}
}
public function load($class)
{
require_once(string) $class.'.php'; //fixed CI 3 issue by lilsammy
log_message('debug', "Zend Class $class Loaded");
}
}
Then on the controller should look something like
Filename: Zend_c.php // Just named it like that for testing.
<?php
class Zend_c extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->library('zend');
$this->zend->load('zend/barcode');
}
public function index() {
$temp = rand(10000, 99999);
echo $this->set_barcode($temp);
}
private function set_barcode($code)
{
return Zend_Barcode::render('code128', 'image', array('text'=>$code), array());
}
}
Working Proof