How to position dynamicly created barcode on page php

HTML, CSS and anything else that deals with client side capabilities.

Moderator: General Moderators

Post Reply
dlow128
Forum Newbie
Posts: 1
Joined: Sat Aug 01, 2009 1:01 pm

How to position dynamicly created barcode on page php

Post 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);
?>
 
towerspl
Forum Newbie
Posts: 20
Joined: Mon Aug 03, 2009 7:37 am

Re: How to position dynamicly created barcode on page php

Post 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.
Post Reply