Jump to content
Fórum Script Brasil
  • 0

Gerá Códigos De Barra


Gladisson
 Share

Question

Tenho um código par gerar códigos de barra padrão 2of5, mas só funciona com o digitando o valor do código de barra, gera o código de barra certinho fiz já vários testes, mas gostaria de saber pode me ajudar a achar uma variavél que eu possa colocar o valor do documento, ex R$4,90 e gerá um código de barra.

<form name="Gerar" method="post" action="gerarcodigo.php">

Digite o valor do cógigo de barra

<input type="text" name="valor" maxlength="50" size="50" value="<? echo $valor ?>">

assim que quero:

Digite o valor do documento:

<input type="text" name="valor" maxlength="50" size="50" value="<? echo $valoremreais ?>">

<input type="submit" name="Submit" value="Gerar">

</form>

Ou quem tiver um pronto, e puder me ceder, ficarei muito grato.

Valeu.... :P

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Cara, é só pedir pro cara digitar em um text e depois pegar, no caso do PHP, $nome_do_text, a variavel REGISTER_GLOBALS tem que estar on no php.ini

Não sei se é bem isso que tu quer...

Link to comment
Share on other sites

  • 0

acho q ele quer assim

valor em reais | codigo de barra

R$ 5,00 | 37039847504387503

R$ 6,00 | 09687095686940986

é isso?

porque se você determinar os valores já, é facil, é só checar com o banco de dados

mas se você quer q ele gere um codigo de barra para R$ 4,54 por exemplo, ai não sei (a não ser q no banco exista 4,54)

é isso?

Link to comment
Share on other sites

  • 0

excelente script!!

gera código de barra no modelo Code39, muito bom...

index.php

<?
include_once ("barcode.php");
include_once ("classBarraC.php");
$texto = $HTTP_POST_VARS["texto"];
$tam = $HTTP_POST_VARS["tam"];
?>

<html>
<head>
<title></title>
<link rel="stylesheet" href="padrão.css" type="text/css">
</head>

<body>
<form name="form1" method="post" action="index.php">
  <div align="center">Digite o texto: 
    <input type="text" name="texto" value="<?=$texto?>">
    Selecione o tamanho: 
    <select name="tam">
  <?for ($i=1;$i<10;$i++){
      echo "<option value='$i' ";
      if ($tam == $i) {
    echo "selected";
      }
      echo ">$i</option>";
  }?>
    </select>
    <input type="submit" name="Submit" value="Mostrar">
  </div>
</form>
<p>&nbsp;</p>
<p>
<?
if ($texto){
    echo "Code 39: ";
      barcode($texto,$tam);
    //Substitua o valor do parâmetro abaixo pelo número do código de barras.
//instânciando a classe
    echo "<br>";
    echo "Code 25: ";
WBarCode::WBarCode( $texto );


}?>
</p>
</body>
</html>
barcode.php
<?

Function barcode($texto, $tam=1,$path="imgbarra/"){
    if ($texto){
  $w = 86 / $tam;
  $h = 200 / $tam;
  $e = 6 / $tam;
  if (file_exists($path."ini.png") && file_exists($path."esp.png")){
      echo "<img src='".$path."ini.png' width='$w' height='$h'>";
      echo "<img src='".$path."esp.png' width='$e' height='$h'>";
      $texto = strtolower($texto);
      for ($i=0;$i<=strlen($texto)-1;$i++){
    $var = substr($texto,$i,1);
    if ($var == "/" && file_exists($path."bar.png")){
        echo "<img src='".$path."bar.png' width='$w' height='$h'>";
        $var = "";
    }
    if ($var == "*" && file_exists($path."ast.png")){
        echo "<img src='".$path."ast.png' width='$w' height='$h'>";
        $var = "";
    }
    if ($var == "%" && file_exists($path."per.png")){
        echo "<img src='".$path."per.png' width='$w' height='$h'>";
        $var = "";
    }
    if ($var == "." && file_exists($path."pnt.png")){
        echo "<img src='".$path."pnt.png' width='$w' height='$h'>";
        $var = "";
    }
    if ((!($var=="")) && (file_exists($path."$var.png"))){
        echo "<img src='".$path."$var.png' width='$w' height='$h'>";
    }
    echo "<img src='".$path."esp.png' width='$e' height='$h'>";
      }
      echo "<img src='".$path."ini.png' width='$w' height='$h'>";
  }else{
      echo "BarCode erro: Faltam figuras do ini.png ou esp.png!";
  }
    }
}
?>
Agora o codigo de barra padrão
<html> 
<?  
/* 
Rotina para gerar códigos de barra padrão 2of5 ou 25. 
#################### 
Orientado a Objeto 
#################### 
*/ 

class WBarCode 
    { 
//variaveis privadas 
var $_fino; 
var $_largo; 
var $_altura; 
//variaveis publicas 
var $BarCodes = array(); 
var $texto; 
var $matrizimg; 
var $f1; 
var $f2; 
var $f; 
var $i; 
var $matrizimg; 

//Construtor da class 

function WBarCode($Valor){ 
$this->fino=1; 
$this->largo=3; 
$this->altura=50; 

if (empty($this->BarCodes[0])) 
  { 

    $this->BarCodes[0]="00110"; 
    $this->BarCodes[1]="10001"; 
    $this->BarCodes[2]="01001"; 
    $this->BarCodes[3]="11000"; 
    $this->BarCodes[4]="00101"; 
    $this->BarCodes[5]="10100"; 
    $this->BarCodes[6]="01100"; 
    $this->BarCodes[7]="00011"; 
    $this->BarCodes[8]="10010"; 
    $this->BarCodes[9]="01010"; 


    for ($this->f1=9; $this->f1>=0; $this->f1=$this->f1-1) 
    { 
      for ($this->f2=9; $this->f2>=0; $this->f2=$this->f2-1) 
      { 
        $this->f=$this->f1*10+$this->f2; 
        $this->texto=""; 
        for ($this->i=1; $this->i<=5; $this->i=$this->i+1) 
        { 
$this->texto=$this->texto.substr($this->BarCodes[$this->f1],$this->i-1,1). 
    substr($this->BarCodes[$this->f2],$this->i-1,1); 
        }  
        $this->BarCodes[$this->f]=$this->texto; 
      }  

    }  

  }  

//Desenho da barra 
// Guarda inicial 
$this->matrizimg.= " 
<img src=p.gif width=$this->fino height=$this->altura border=0><img  
src=b.gif width=$this->fino height=$this->altura border=0><img 
src=p.gif width=$this->fino height=$this->altura border=0><img 
src=b.gif width=$this->fino height=$this->altura border=0><img  
"; 

$this->texto=$Valor; 
if (strlen($this->texto)%2<>0) 
 { 
  $this->texto="0".$this->texto; 
  }  
// Draw dos dados 
while(strlen($this->texto)>0) 
  { 
$this->i=intval(substr($this->texto,0,2)); 
$this->texto=substr($this->texto,strlen($this->texto)-(strlen($this->texto)-2)); 
$this->f=$this->BarCodes[$this->i]; 
for ($this->i=1; $this->i<=10; $this->i=$this->i+2) 
    { 
      if (substr($this->f,$this->i-1,1)=="0") 
      { 
       $this->f1=$this->fino; 
      } 
        else 
      { 

        $this->f1=$this->largo; 
      }  

$this->matrizimg.="src=p.gif width=$this->f1 height=$this->altura border=0><img  
    "; 
   if (substr($this->f,$this->i+1-1,1)=="0") 
      { 

        $this->f2=$this->fino; 
      } 
        else 
      { 

        $this->f2=$this->largo; 
      }  

$this->matrizimg.= "src=b.gif width=$this->f2 height=$this->altura border=0><img "; 
    } 
} 

$this->matrizimg.= "src=p.gif width=$this->largo height=$this->altura border=0><img src=b.gif width=$this->fino height=$this->altura border=0><img  
src=p.gif width=1 height=$this->altura border=0>"; 

//escreve todo o codigo da barra na tela... 
echo $this->matrizimg; 

    }//fim da function 
}//fim da Class 

//Substitua o valor do parâmetro abaixo pelo número do código de barras. 
//instânciando a classe 

WBarCode::WBarCode( "85710000000000000673028082002010201200200057" ); 

?>     

</html>

Tmb não sei se erra isso q você quiria,

até..

Link to comment
Share on other sites

  • 0

Jeff o código funciona perfeitamente parabéns é ótimo mesmo, mas será que você consegue desenvolver algo assim:

Que eu possa digitar um valor que seja o valor do documento em Real e sair o código de barra.

Ex: R$ 22,00.

Código de barra: de R$ 22,00.

164d89407197c218b508845c4ec750da.png

Otra pessoa que souber será bem vinda a ajuda :rolleyes:

Link to comment
Share on other sites

  • 0

E ae pessoal beleza

Estou testando o script que o jeff deixou logo acima para teste mas esta dando a seguinte mensagem de erro:

Fatal error: Cannot redeclare WBarCode::$matrizimg in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\teste\barra2\classBarraC.php on line 47

E também não tenho as imagens que o código carrega! Alguém pode me ajudar a corrigir esse problema?

Obrigado

Link to comment
Share on other sites

  • 0

Acho que o valor está agregado ao código, e não explícito nele...

Quando você coloca o valor, coloca o valor naquele determinado código que gera as barras.

Pro que você quer, no caso, acho que terá que criar, no sistema que irá ler, também, um código de barras que o identifica como pernsonalizado e que contém o valor em si mesmo.

Por exemplo:

1001001001 | 4,58 -> Produto 1

1001001002 | 5,40 -> Produto 2

0000000241 | 2,41 -> Personalizado

0000001327 | 13,27 -> Personalizado

Acho que é algo mais ou menos assim que você quer, né??

Se for, é simples. Faz a verificação dos primeiros (no exemplo) 5 dígitos. Se todos forem 0, então o valor é personalizado e está já no código. Se não for, pesquisa num banco pra saber se possui aquele código.

Bem por alto, dá pra fazer um monte de outras coisas.. Mas a teoria é mais ou menos por aí..

Espero que dê pra clarear as idéias..

Link to comment
Share on other sites

  • 0

E ae beleza

Cara valeu pela atenção, pelo que você deixou acredito que seja possível montar um código alfanumérico, porém não consegui entender o que você esta explicando pesquisei um pouco mais na net mas não achei nada, será que você poderia me explicar como montar por favor? Por exemplo se o meu código de barras fosse esse:

0ef875ff0b5

Como eu converteria o valor acima em um código de barras?

Obrigado

Edited by alexandremanowar
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.1k
    • Total Posts
      647.1k
×
×
  • Create New...