Page 1 of 1

How to position dynamicly created barcode on page php

Posted: Sat Aug 01, 2009 1:05 pm
by dlow128
Moved to HTML, CSS... forum by moderator:
This script uses mysql to generate a barcode and duplicates the image 10 times one underneath the other to produce what looks like a continious barcode. My problem is i need to separate the 10 images down the page to allow for a text area. Any ideas?
I appreciate any input, many thanks

Code: Select all

 
<?php
 
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
 
$query = mysql_fetch_row(mysql_query("select codes from list order by rand() limit 1"));
 
    $barcodeheight=40;
    $barcodethinwidth=2;
    $barcodethickwidth=$barcodethinwidth*3;
    $codingmap  =  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");
    $text  =  strtoupper($query[0]);
    $textlen  =  strlen($text);
    $barcodewidth  =  ($textlen)*(7*$barcodethinwidth + 3*$barcodethickwidth)-$barcodethinwidth;
    $im  =  ImageCreate($barcodewidth,$barcodeheight);
    $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++)  {
        $char  =  substr($text,$idx,1);
        // make  unknown  chars  a  '-';
        if  (!isset($codingmap[$char]))  $char  =  "-";
        for  ($baridx=0;$baridx<=8;$baridx++)  {
            $elementwidth  =  (substr($codingmap[$char],$baridx,1))  ? $barcodethickwidth : $barcodethinwidth;
            if  (($baridx+1)%2)  imagefilledrectangle($im,$xpos,0,$xpos + $elementwidth-1,$barcodeheight,$black);
            $xpos+=$elementwidth;
        }
        $xpos+=$elementwidth;
    }
// Duplication
  $barcodesRequired = 10;
$im2 = imageCreate($barcodewidth,$barcodeheight*$barcodesRequired);
for($x = 0; $x< $barcodesRequired; $x ++){
    imagecopy($im2,$im,0,$barcodeheight*$x,0,0,$barcodewidth,$barcodeheight);
}
 
Header( "Content-type:  image/gif");
ImageGif($im2);
ImageDestroy($im);
ImageDestroy($im2);
?>
 

Re: How to position dynamicly created barcode on page php

Posted: Tue Aug 04, 2009 9:21 am
by towerspl
that script is just creating an image so it wont be treated as a html page so you wont be able to output a text area in that file.


Solution would be to create another php file (test.php for example) and call this image creating script from test.php from there you can add an input each time you call it.