Barcode via php

Status
Niet open voor verdere reacties.

Ruultje

Gebruiker
Lid geworden
16 okt 2007
Berichten
39
Ik ben op zoek naar iets dat een barcode genereert. Ik heb hierin wel iets kunnen vinden maar kom er niet helemaal uit hoe ik deze ergens ingezet krijg. Het moet gewoon op een pagina komen te staan weer verdere info bij staat. Maar die verdere info krijg ik er dus niet bijgeplaatst. Ik test het nu vanuit de database. Het moet de bedoeling zijn dat deze straks vanuit een formulier komt (automatisch volgnummer) die getoond wordt na het invullen (de barcode wordt dan getoond). Maar dat laatste daar kom ik wel uit.

Ik heb deze code:
Code:
<?php
$query = mysql_fetch_row(mysql_query("select barcode from test where id = 15"));

    $barcodeheight=10;
    $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);
?>
Ik denk dat er iets mis gaat met de header();
 
Je header heeft twee spaties, dat zou het zomaar kunnen zijn.
 
Ook dan werkt het helaas niet. Wel als ik de pagina loskoppel.Maar zet ik hem ergens anders bij (op een pagina waar andere content staat) of bij een include dan werkt het niet en krijg ik deze melding:

De afbeelding “http://localhost/databases/test/index.php” kan niet worden weergegeven, omdat deze fouten bevat.


Edit:
Ben er gedeeltelijk achter. Hij geeft problemen door de functions.

Deze geeft problemen (o.a.):

Code:
<?php
// Functie voor print
function printen()
	{
?>
<input type="image" src="images/icons/print.png" name="PrintMij" class="afdrukknoptekst" onClick="javascript:print()"> 
<?php
	}
 
?>

Deze staat elders:
Code:
<?php  printen(); ?>

Wanneer ik de naam van de functie verander werkt het gewoon. Maar zo gauw deze weer dezelfde namen hebben krijg ik dezelfde foutmelding.

Edit 2: ik heb de barcode.php nu helemaal bovenaan gezet. Dan werkt het wel. Maar dan wordt verder niks meer weergeven. Dus ik zie nu alleen een witte pagina met de barcode. Menu Items e.d. worden niet meer weergegeven. En uiteraard dienen deze wel getoond te worden.

Ik ga in ieder geval nog verder zoeken. Nu eerst nog een paar uurtjes slapen..
 
Laatst bewerkt:
Ow je kunt niet een plaatje outputten in een andere pagina... een plaatje is een volledige request.

Dus als je dit script include gaat het fout want dan wordt het hele script 1 enkel plaatje. Je moet het loshouden en apart aanroepen (door een img met als src je andere script te gebruiken)
 
Ik dacht inderdaad dat er een plaatje gemaakt zou worden van de hele site.

Img src werkt inderdaad. Super bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan