barcode_image.php 2.08 KB
<?php
require_once "jpgraph/jpgraph.php";
require_once "jpgraph/jpgraph_canvas.php";
require_once "jpgraph/jpgraph_barcode.php";

$params = array(
    array('code',1),array('data',''),array('modwidth',1),array('info',false),
    array('notext',false),array('checksum',false),array('showframe',false),
    array('vertical',false) , array('backend','IMAGE'), array('file',''),
    array('scale',1), array('height',70), array('pswidth','') );

$n=count($params);
for($i=0; $i < $n; ++$i ) {
    $v  = $params[$i][0];
    if( empty($_GET[$params[$i][0]]) ) {
	$$v = $params[$i][1];
    }
    else
	$$v = $_GET[$params[$i][0]];
}

if( $modwidth < 1 || $modwidth > 5 ) {
    echo "<h4>Module width must be between 1 and 5 pixels</h4>";
}
elseif( $data==="" ) {
    echo "<h3>Please enter data to be encoded, select symbology and press 'Ok'.</h3>";
    echo "<i>Note: Data must be valid for the choosen encoding.</i>";
}
elseif( $code==-1 ) {
    echo "<h4>No code symbology selected.</h4>";
}
elseif( $height < 10 || $height > 500 ) {
    echo "<h4> Height must be in range [10, 500]</h4>";
}
elseif( $scale < 0.1 || $scale > 15 ) {
    echo "<h4> Scale must be in range [0.1, 15]</h4>";
}
else {
    if( $code==20 ) {
	$encoder = BarcodeFactory::Create(6);
	$encoder->UseExtended();
    }
    else {
	$encoder = BarcodeFactory::Create($code);
    }
    $b =  $backend=='EPS' ? 'PS' : $backend;
    $b = substr($backend,0,5) == 'IMAGE' ? 'IMAGE' : $b;
    $e = BackendFactory::Create($b,$encoder);
    if( substr($backend,0,5) == 'IMAGE' ) {
	if( substr($backend,5,1) == 'J' ) 
	    $e->SetImgFormat('JPEG');
    }
    if( $e ) {
	if( $backend == 'EPS' )
	    $e->SetEPS();
	if( $pswidth!='' )
	    $modwidth = $pswidth;
	$e->SetModuleWidth($modwidth);
	$e->AddChecksum($checksum);
	$e->NoText($notext);
	$e->SetScale($scale);
	$e->SetVertical($vertical);
	$e->ShowFrame($showframe);
	$e->SetHeight($height);
	$r = $e->Stroke($data,$file,$info,$info);
	if( $r )
	    echo nl2br(htmlspecialchars($r));
	if( $file != '' )
	    echo "<p>Wrote file $file.";
    }
    else
	echo "<h3>Can't create choosen backend: $backend.</h3>";
}

?>