Gerando código de barras com PHP

Programação PHP: Que tal gerar seu código de barras em imagem para salvar (ou não) em disco? Basta informar uma sequência de dígitos de sua preferência. Veja a solução em PHP e outra em Javascript.

Icon

barcodegenerator-20120406.zip
1.50 KB 14333 downloads

Autor: Raj Trivedi
País: India
site: PHP Classes
Update: Taylor Lopes

Solução 1 – PHP

Esta classe é extremamente fácil de usar, pode acreditar! Com apenas duas linhas de código e você já terá a imagem do seu código de barras em formato GIF, gerada a partir de uma string de sequencial de dígitos de sua preferência. Você ainda tem a opção de salvar a imagem (código de barras) em um arquivo ou exibir direto na saída do script.

barcode.php

1
2
3
4
<?php
    require_once('barcode.inc.php'); 
    new barCodeGenrator("125689365472365458",1,"hello.gif"); 
?>

Explicando
Na primeira linha estamos importando o arquivo “barcode.inc.php”, que é onde se encontra a classe barCodeGenrator. Na segunda linha instanciamos a classe passando os parâmetros necessários ao método construtor.

Os parâmetros, como você já deve ter observado, indicam respectivamente:
(1°) Os dígitos que você deseja usar para formar o código de barra
(2°) A forma de exibição: 0 = Gera a saída direto na tela do script | 1 = Salva o arquivo em disco
(3°) O nome do arquivo. Pode-se usar o caminho absoluto seguido do nome para indicar onde o arquivo será salvo.

A imagem resultante do código acima é esta:
hello.gif
hello

Atualização

Seguinte, a pedido, fiz um pequeno incremento no código original, adicionando três parâmetros novos (opcional). Agora você pode definir a LARGURA e a ALTURA do código de barra e também dizer se quer exibir (ou não) a numeração do código de barra (texto).

Os parâmetros adicionais indicam respectivamente:
(4°) A largura da barra. Exemplo: 190 pixels (informe apenas o número).
(5°) A altura da barra. Exemplo: 130 pixels (informe apenas o número).
(6°) Se vai querer ou não exibir na etiqueta/imagem o número do código. true = exibe, e false = não.

OBS: Cuidado para não definir a largura e altura pequenos de mais e acabar cortando parte do código de barras.

barcode2.php
1
2
3
4
<?php
    require_once('barcode.inc.php'); 
    new barCodeGenrator('125689365472365458',0,'hello.gif', 190, 130, true);
?>

Ficando assim:

Dúvidas

Como funciona o código de barras?
Conforme feedback por alguns comentários neste Post, o que este script faz é converter números em barras. Portanto, você teria que montar a sequência numérica desejada e repassar ao script para que ele gere o código de barras compatível com o padrão que você precisa, como por exemplo o EAT-13.

Antes de afirmar que o leitor não lê o código de barras, leve em consideração duas possibilidades: (1) Você está usando um leitor específico para certo padrão, como homebank. Neste caso, a não ser que você tenha montado a sequência numérica conforme o padrão requerido, não irá mesmo funcionar; (2) Você está gerando uma imagem cortada (pela metade) do código de barras, tornando o código ilegível. Veja como resolver isso na abordagem que fiz logo abaixo. O fato é que o código de barras pode perfeitamente ser lido, como mencionou o colega: “Tenho o leitor Honeywell e ele lê sem problemas, mesmo códigos com apenas 2 números, ou seja vc pode usar a qtde de números que desejar no código“.

Ver comentários:
– Nicolas Alves 26 de janeiro de 2012 at 10:53 #
– Carlos 4 de dezembro de 2012 at 11:20 #

Tem como exibir mais de um código de barras, ou seja, fazer Loop de código de barras?
Sim. Neste caso, salve a imagem (código de barras) em disco, setando o 2° parâmetro para 1.

1
2
3
4
5
6
7
8
<?php
require_once('barcode.inc.php'); 
for ($i = 0; $i < 10; $i++) {
  $code_number = rand(1000000000, 9999999999);
  new barCodeGenrator($code_number,1,'barcode_'.$code_number.'.gif', 190, 130, true);
  echo '<img src="barcode_'.$code_number.'.gif" />'; 
}
?>

Por que o código de barras fica cortado e ilegível?
Conforme dito, isto ocorre, pois provavelmente você está usando uma largura ou altura muito pequena em relação ao espaço ideal e necessário para a classe gerar o código de barras. O que você pode tentar fazer para que isto não aconteça é usar um artifício: ir testando a largura até que se perceba que não está cortando o código de barras. Faça o mesmo para a altura, de modo a não cortar a exibição da numeração, caso o último parâmetro seja TRUE. Feito isto, diminua o tamanho da imagem gerada através do atributo WIDTH da tag IMG, até ajustar ao tamanho que você desejar. Assim o código de barras ficará pequeno e sem cortes!

1
2
3
4
5
<?php
  require_once('barcode.inc.php'); 
  new barCodeGenrator('125689365472365458',1,'barcode.gif', 180, 42, true);
  echo '<img src="barcode.gif" width="150" />'; 
?>

O código de barras gera caracteres (letras)?
Sim. Gera, conforme testado e visto na figura abaixo. Porém, não posso garantir que o leitor reconheça letras.

Solução 2 – Javascript

Você também pode gerar código de barras com javascript. O bytescoutbarcode128.js é um script capaz de gerar o código de barras e convertê-lo em imagem utilizando codificação “base64”; roda totalmente do lado-cliente (no navegador), sem código do lado do servidor. O script completo pode ser baixado no site do desenvolvedor http://www.bytescout.com/.

Veja a seguir um exemplo. Criei uma função “saveBarcode()” para caso você queira baixar a imagem e salvá-la em disco. Aqui irei fazer com que salve a imagem em disco de forma manual, ou seja, ao clicar no botão “Salvar”, o código Base64 da imagem (código de barras) é enviado via POST para um simples script que chamei de “barcode.php”, que faz o tratamento e salva a imagem em disco. Mas você pode querer fazer isso, de forma automática e transparente (silenciosa), de modo que ao gerar a imagem de código de barras, o evento também já salve em disco, sem precisar clicar em botão algum. Para isto, você deve utilizar Ajax, mas essa implementação não irei demonstrar por enquanto, ok?

barcode.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<!DOCTYPE html>
<html>
  <head>
    <title>BytescoutBarcode128</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <script type="text/javascript" src="bytescoutbarcode128_1.00.07.js"></script>  
  </head>
  <body onload="updateBarcode()">
    <form action="">
      C&oacute;digo de Barras:
      <input id="barcodeValue" type="text" name="value" value="abcd123456" />
      <input type="button" value="Gerar" onclick="updateBarcode()" />
    </form>
    <p>
      C&oacute;digo de Barras convertido para imagem:<br />
      <img id="barcodeImage" style="border: solid 1px black;"/>
    </p>
    <script type="text/javascript">
      function updateBarcode() {
	var barcode = new bytescoutbarcode128();
        var value = document.getElementById("barcodeValue").value;
        barcode.valueSet(value);
        barcode.setMargins(5, 5, 5, 5);
        barcode.setBarWidth(2);
        var width = barcode.getMinWidth();
        barcode.setSize(width, 100);
        var barcodeImage = document.getElementById('barcodeImage');
   	barcodeImage.src = barcode.exportToBase64(width, 100, 0);
      }
 
      function saveBarcode() {
        document.frmSaveBarcode.barcodeBase64.value=document.getElementById('barcodeImage').src;
        document.frmSaveBarcode.submit();
      }
    </script>
    <form name="frmSaveBarcode" action="barcode.php" method="post">
      <input id="barcodeBase64" name="barcodeBase64" type="hidden" value="1231" />
      <input type="button" value="Salvar" onclick="saveBarcode()" />
    </form>    
  </body>
</html>

Note que apenas fiz uso do script “bytescoutbarcode128_1.00.07.js“, que você pode pegar em http://www.bytescout.com/. Não tem mistério!

Agora, vamos ver o arquivo barcode.php que receberá a códificação base64 da imagem (código de barras) para salvá-la em disco:

barcode.php

1
2
3
4
5
6
<?php
  $barcodeBase64 =  strip_tags($_POST['barcodeBase64']);
  list($type, $image) = explode(',', $barcodeBase64);
  file_put_contents('barcode.png', base64_decode($image));
  echo 'Imagem salva em disco!';
?>
Total de acessos: 118784

103 comentários sobre “Gerando código de barras com PHP

  1. gilson disse:

    Opa.
    Obrigado por responder.
    entao, eu programo em php e tenho tudo funcionando.
    so to precisando desta classe ae que nao encontrei p baixar.
    tem como vc me mandar a classe , barcode.inc.php

    obrigado.

  2. Oi, a classe está disponível para download aqui mesmo neste Post. Basta clicar ali onde está escrito “Download: barcode-generator-2009-10-14.zip”… é só descompactar e usar junto ao seu script PHP. Falou, t+

  3. Welisson Dias disse:

    Cara muito bom e simples, so que quando faço o download, não esta incluido
    a classe barcode.inc.php, tem como me enviar por e-mail?

    Obrigado.

    • E aí… olha, não cheguei a testar com leitor, mas acredito que funcione desde que não seja aqueles leitores tipo Homebank, pois estes já tem uns padrões definidos de formação… caso você ou alguém use o leitor, favor comentar como foi… falou, t+

  4. Quem estiver com problemas do tipo de não ter permissão para escrever arquivos nas pastas do servidor ou problemas com cabeçalho do arquivo uma solução é colocar o arquivo gerador de código de barras em uma tag como vou mostrar no exemplo abaixo, lembrando que será necessário fazer modificações na classe.

    no arquivo barcode.inc.php adicione as seguintes linhas.

    $code = $_GET[“code”];
    new barCodeGenrator($code, 0, “teste.gif”);

    basta agora inserir a tag abaixo no local apropriado onde se quer exibir o código de barras…

    • Não sei informar, Felipe… a finalidade da classe é converter número em seu código de barra correspondente. Para atender certos padrões, daí teria que ver o critério com que eles são formados. Falou…

  5. Everton disse:

    Olá. deu certo, mas como faço para incluir em meu script? Pois quando vou fazer, dá o seguinte erro “A imagem contem erros e não pode ser exibida”.

    Poderia me ajudar?

  6. Cecilia disse:

    Então, tentei adicionar esse código no meu script, mas apareceu vários caracteres estranhos.
    Se eu setar o 2º parametro pra “1”, ele nem aparece esse caracteres e mto menos salva a imagem…

    Alguém tem alguma sugestão do que fazer?

  7. Bom, esse gerador apenas converte os numeros em barras, assim formando um codigo de barras.
    Mas pra seguir o padrão, teria que digitar apenas 13 digitos (números), surgindo o formado EAT-13.

    Independente da quantidade dos digitos, ou se está seguindo o padrão ou não, acredito que qualquer leitora vai ler. Então, sem problemas.

    Eu percebi que esse script gera uma imagem muito grande, com muito espaço em branco. Então, editei o arquivo “barcode.inc.php”, na linha 20, trocando a largura da imagem gerada.

    Linha 20:
    $img = imagecreate(LARGURA, ALTURA);

    Ei coloquei a largura 145 aqui, se for usar padrão EAT-13.

    Mais informações sobre o padrão EAT-13: http://pt.wikipedia.org/wiki/C%C3%B3digo_de_barras

    Até+

    • Valeu… aproveitei e fiz uma pequena adaptação no código original, de forma que possa informar a largura e altura já na chamada da classe (método construtor). Agora também é possível exibir a numeração, abaixo do código de barras: new barCodeGenrator(‘125689365472365458′,0,’hello.gif’, 190, 130, true); Qualquer coisa dá uma lida novamente no Post que está melhor explicado, falouuu.

    • Fiz uma atualização. Favor ler novamente o Post acima e baixar o novo código. Basicamente acrescentei dois parâmetros no final da chamada do método construtor, ficando assim: new barCodeGenrator($code_number,0,’hello.gif’, 190, 130, true); O “true” é justamente para exibir o número em baixo do código de barras. Caso não queira, deixe “false” ou omita o parâmetro.

  8. Afrânio disse:

    Como faço para aumentar o código de tamanho, pois queria poder usar esse modelo aqui. A classe funciona perfeitamente, mas gera uma imagem muito pequena. Será que tem algum jeito de aumentar a saída desse código? tanto vertical como horizontal ?

    • Oi, este script é para ser usado por desenvolvedores, pois é preciso conhecer um pouco da linguagem de programação PHP e seu ambiente de funcionamento (servidor Web). De qualquer forma, o número do código de barras deve ser colocado no primeiro parâmetro do método construtor. Supondo que o número seja 125689365472365458, então fica assim: new barCodeGenrator(‘125689365472365458′,1,’hello.gif’, 190, 130, true); Isto irá gerar uma imagem chamada “hello.gif”, com tamanho de 190 x 130 pixels, formada pelo código de barras que represente a numeração informada (125689365472365458), salvo no disco local (HD).

      • Rogerio Alan Dobler disse:

        Entendo pouco de php… poderia explicar isso melhor? como insiro isso na terceira classe? onde é essa classe? obrigado

      • Olá Rogerio. Não é terceira classe, e sim terceiro parâmetro do construtor, neste caso, dado pelo nome do arquivo (ou caminho) “hello.gif”. Para usar este código de barras é preciso saber programar em PHP. Para funcionar, você deve ter um servidor Web rodando (Apache + PHP). Aplicativos como Wampserver instalam isto para você. Depois, basta colocar os arquivos/classes que você baixou neste Post (barcode.inc.php e index.php) no diretório “C:\wamp\www\barcode” (crie a pasta “barcode”) e fazer a chamada pelo navegador http://localhost/barcode. Altere os dados de exemplo contido no index.php de forma que o código de barras possa ser gerado de acordo com o que você deseja. Falouuu…

  9. Aléx disse:

    Olá Taylor, ótimo código para gerar código de barras. Porem, encontrei um problema, alterei o tamanho do código de barras para 110 x 42 px, ele gera normal, porém, não é detectado no leitor de código de barras, no tamnho normal é lido sem problemas, uma coisa que ´percebi, foi que se eu deixar para exibir os números(TRUE), ele corta boa parte dos números. Tem alguma coisa a fazer para isso?
    Valew!

    • Oi Aléx, conforme dito, isto ocorre, pois provavelmente você está usando uma largura ou altura muito pequena em relação ao espaço ideal e necessário para a classe gerar o código de barras. O que você pode tentar fazer para que isto não aconteça é usar um artifício: ir testando a largura até que se perceba que não está cortando o código de barras. Faça o mesmo para a altura, de modo a não cortar a exibição da numeração, caso o último parâmetro seja TRUE. Feito isto, diminua o tamanho da imagem gerada através do atributo WIDTH da tag IMG, até ajustar ao tamanho que você desejar. Assim o código de barras ficará pequeno e sem cortes!

      1
      2
      3
      4
      5
      
      <?php
        require_once('barcode.inc.php'); 
        new barCodeGenrator('125689365472365458',1,'barcode.gif', 180, 42, true);
        echo '<img src="barcode.gif" width="150" />'; 
      ?>
  10. Fábio Aguiar disse:

    Opa, Taylor, desculpa, achei que esse links estava com o arquivo desatualizado.
    Uma outra dúvida que surgiu agora que talvez você possa me ajudar é que utilizo CodeIgniter como fremwork, você sabe como conseguiria utilizar sua classe mesmo utilizando o codeigniter?

    • Oi Fábio… para usar com o codeigniter teria que fazer algumas pequenas modificações:
      (1) mude o nome do arquivo de barcode.inc.php para barCodeGenrator.php, de modo que fique com o mesmo nome da classe;
      (2) coloque barCodeGenrator.php dentro do diretório application\libraries;
      (3) altere o construtor de barCodeGenrator para que ao invés de receber aquele monte de parâmetros, receba apenas um array com os valores correspondentes e, internamente, faça um extract para que o par “chave => valor” do array se converta em variáveis, como se fossem os parâmetros originais, assim:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      
      // MUDE ISTO
      function __construct($value,$into=1, $filename = 'barcode.gif', $width_bar=300, $height_bar=65, $show_codebar=false) {
       // código original
       }
       
      // PARA ISTO
      function __construct($params) {
          extract($params);
          // codigo original
      }

      Bom, feito isto, basta chamar a classe dentro de uma função qualquer do seu Controllers, assim:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      
      public function index()  {  
          $params = array('value' => '125689365472365458',
                                         'into' => 0,
                                         'filename' => 'barcode.gif', 
                                         'width_bar' => 300,
                                         'height_bar' => 65,
                                         'show_codebar' => true);                    
          $this->load->library('barCodeGenrator', $params);
      }

      Claro, aí você passa os parâmetros conforme sua necessidade… Note que $params é uma array cujos valores equivalem aos parâmetros do construtor original… é isso, falou!

  11. Nickolas Menezes disse:

    Olá, estou querendo incluir código de barras em uma série de carteirinhas geradas em php, mas não consigo fazer com que gerem mais de um código de barras por vez. Mesmo usando um while no código de download não deu certo, gerar mais de uma. como faço para gerar vários codigos numa mesma tela? obrigado.

    • Oi, segue um exemplo… falou!

      Exibir mais de um código de barras | Loop de código de barras
      Neste caso, salve a imagem (código de barras) em disco, setando o 2° parâmetro para 1.

      1
      2
      3
      4
      5
      6
      
        require_once('barcode.inc.php'); 
        for ($i = 0; $i < 10; $i++) {
          $code_number = rand(1000000000, 9999999999);
          new barCodeGenrator($code_number,1,'barcode_'.$code_number.'.gif', 190, 130, true);
          echo '<img src="barcode_'.$code_number.'.gif" />'; 
        }
  12. Andre Dias disse:

    Bom dia Taylor , obrigado pela ajuda esta sendo de grande valia
    Tenho algumas perguntas , vou tentar resumir

    A Etiqueta gerada é padrão EAN-13, haveria a possibilidade de se criar uma etiqueta com menos numeros ou atraves de uma sequencia de zeros ?
    ex:0000000456456(13 digitos)

    Outra , gostaria de fazer uma select de concatenar o numero do registro + a data de produção e gerar o codigo de barras apartir dessa select , tem como fazer isso ?
    ex: 123456121107(13 digitos)
    Obrigado mais uma vez

    • Desculpe a demora, percebi agora que não respondi sua pergunta. Esse script converte números em barras, portanto, você pode entrar com o padrão que desejar (teria só que montar). Para completar com zeros, você pode usar a função nativa do php str_pad().

  13. Carlos disse:

    Taylor, não consegui alterar a variável para o código, apesar de mudar o número do código de barra, na geração sai sempre o número do exemplo? O q estou fazendo errado?

    • Carlos, acabei de testar o código e funciona. O primeiro parâmetro ($code_number) representa o número do código de barras e deve ser trocado. Exemplo:

      1
      2
      3
      4
      5
      
      <?php
          require_once('barcode.inc.php'); 
          $code_number = '112233445566778899';
          new barCodeGenrator($code_number,0,'hello.gif', 190, 130, true);
      ?>

      Falou!

      • Carlos disse:

        Descobri que gerando um novo código e abrindo uma nova página “printando” a etiqueta, sempre é impresso a etiqueta anterior, tendo que pressionar F5 para atualizar, aí sim aparece a última etiqueta gerada.
        Contornei o problema gerando a etiqueta no momento do cadastro do produtos e imprimindo depois.
        No meu caso pedi para imprimir o codigo com data e hora (YmdHis) e ficou perfeito.
        Tenho o leitor Honeywell e ele lê sem problemas, mesmo códigos com apenas 2 números, ou seja vc pode usar a qtde de números que desejar no código.
        Só não consegui jogar os códigos gerados diretamente numa pasta específica no servidor, se alguém souber dá a dica aí.

  14. Ricardo disse:

    Boa tarde Taylor, como faço para incluir essa imagem em um registro de banco de dados, e efetuar o mesm procedimento para diversos registros filtrados para impressão com FPDF.
    Grato pela ajuda.

  15. Paulo B disse:

    Tem como imprimir automaticamente este código de barra com seu respectivo número?

    Ou seja:
    1. Cadastra o número.
    2. Confirma (aperta botão)
    3. Imprime (automaticamente após a confirmação) o código de barras com número.

    • Taylor Lopes disse:

      Sim, mas é preciso escrever o script para isso… tem que saber um pouco de php e html, ou pedir algum programador para desenvolver pra você, do jeito que precisa.

  16. iGOR disse:

    Ola bom dia
    estou desenvolvendo omeu projeto tcc, e estou utilizando a classa barcode.inc,

    quando vai ler no leitor acrescentar um 0 antes dos numeros , o q é isso ?

  17. Fernando Goya disse:

    Cara muito bom isso!!! Realmente simples de usar.

    Porem, para meu uso, estou com um problema:

    Eu tenho uma sequencia de 14 digitos, por exemplo: ASO85S1G96RE3G7

    Ele gera isso e ate mostra na tela. Mas quando o leitor Le o codigo, ele converte tudo para numero. E eu preciso que apareca exatamente o codigo que foi gerado pois sera feito uma consulta no banco de dados.

    Valeu a ajuda!!!

    • Eu entendo,Fernando. Mas não sei informar se é um problema do script (código de barras) ou do seu leitor, que não reconhece caracteres. Tem um colega que comentou neste Post que usa o leitor Honeywell e ele lê sem problemas, mas não sei dizer se ele usou letras, como você quer. Eu sei que este script gera letras e números, conforme demonstrei e publiquei no comentário do dia 17 de maio de 201317 de maio de 2013. Eu não tenho um leitor para testar isso… mas caso você encontre a solução e possa compartilhar aqui, seria muito bom. Falou!

  18. Flavio disse:

    Ola Taylor, super dez o código.

    tenho uma duvida, estou fazendo um etiqueta com o código dos correios, gera normal mas o leitor não consegue ler as letra ele le 00 no lugar das letras

    SS123456789BR

    0012345678900

    você saberia o que pode ser ?

      • Flavio disse:

        ok, valeuu Taylor,

        pesquisando na net entendi o que estou precisando é do formato code128-B e esse código não se enquadra nele.

        encontrei o script no post abaixo e gera certinho porem não sei salvar em disco para dar o loop na imagem . não manjo de javascript

        se alguém puder me ajuda.

        valeu Taylor pela atenção

  19. Flavio disse:

    ola Taylor, já tinha enviado uma duvida para você mas não tive resposta .

    estou com esse problemas a dias e é na empresa que trabalho e precisamos do codigo de barras validado pelos correios.

    encontrei esse script na net vai certinho mas eu queria salvar em disco para replicar com o loop do PHP

    parecido com a sua adaptação do barcode

    Taylor preciso muito da sua ajuda.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    <!-- bytescoutbarcode128.js script containing bytescoutbarcode128 class to generate barcode image -->
    <input id="barcodeValue" type="hidden" name="value" value="" />
    function updateBarcode() {
      var barcode = new bytescoutbarcode128();
      var value = document.getElementById("barcodeValue").value; 
      barcode.valueSet(value);
      barcode.setMargins(5, 5, 5, 5);
      barcode.setBarWidth(2);
      var width = barcode.getMinWidth();
      barcode.setSize(width, 100);
      var barcodeImage = document.getElementById('barcodeImage');
      var tets;
      barcodeImage.src = barcode.exportToBase64(width, 100, 0);
     }
      • Flavio disse:

        Olá Pessoal .

        Taylor adicionei a adaptação que você fez no meu app de etiquetas e funcionou blz,

        usei o leitor de código de barras SYNBHAL acho que é assim que escreve esse nome simbol, enfim

        code128-B

        valeuuu pela ajuda Taylor,

  20. William disse:

    Oi Taylor,
    Será que seu código gerar um código de barras(imagem) que contenha o NOME DE PESSOA + Número de Matricula?
    Caso Contrario você ou alguem saberia me indicar algo nesse sentido.

    obrigado

    • Olá William. Conforme demonstrado no Post, o script de código de barras gera caracteres (letras). Porém, não posso garantir que o seu leitor reconheça letras. Por fim, só queria lembrar que o código não é meu, apenas fiz umas adaptações e publiquei. O nome do autor consta mencionado no Post. Falouuu!

  21. Anderson disse:

    Ola , Taylor Lopes tudo bem?

    Seus Exemplos funciona muito bem, parabens!!

    Sabe me dizer se tem alguma função que mantem o tamanho do cod de barras independente da quantidade de caracteres que eu informe?

    Obrigado

    • Oi Anderson. O quarto e quinto parâmetro da função barCodeGenrator() é justamente para definir o tamanho (largura e altura). Defina a largura para um tamanho mínimo que não corte o código de barras quando a imagem for gerada. Depois, você pode controlar o tamanho (meno ou maior) utilizando o atributo “width” da tag “img”. O post e os comentários explicam isso melhor; olhe com mais calma. Falou!

  22. André disse:

    Aparece o código de barras bonito, mas quando imprimo e tento fazer a leitura não funciona… simplesmente não lê nada. =/
    minha impressora e leitor são da Bematech

    • André, obrigado por compartilhar a sua experiência. O código foi testado e funciona, como se vê nos comentários dos colegas. Portanto, sugiro certificar-se de que você não esteja cortando o código de barras ou se talvez não esteja gerando um código que seu leitor não seja capaz de ler. Muitos leitores só leem em um determinado padrão, que você deve construir/montar antes de repassar ao script.

  23. Jorge disse:

    Olá Taylor,
    estou desenvolvendo a DANFE da NFe e seu exemplo foi muito útil, porém não sei como gravar no PDF. O comando echo mostra certo na tela.
    Uso este comando para gravar na Danfe $pdf->Cell(12.75,2.54,variavel,1,0,’C’);
    Como armazenar a representação grafica em variavel ou como embutir o conteúdo de “echo” neste comando ?
    Agradeço muito se puder dar esta dica, pois não encontro a lógica.

  24. Amigo,gostaria de saber como e possível criar uma classe automática de envio de código de barras para celular,pois estou trabalhando em uma empresa(ao qual quero cria-la) de venda de ingresso e gostaria de inserir uma classe automática via celular….
    Ex:Um cliente compra um ingresso,e escolhe a opção de receber um Voucher via e-mail ou via cel,e gera o codigo.

    Se puder me ajudar agradeço

  25. Reginaldo disse:

    olá, não sei se você conhece o Virtuemart, acredito que sim. Nele eu tenho o “Numero do Pedido” quando o cliente faz a compra e o mesmo recebe os detalhes da compra por email, o que eu gostaria é de colocar esse numero do pedido também em código de barras, poderia me dizer se é possível com esse código e me ajudar a entender como trabalhar com ele dessa forma.

      • Boa tarde!

        Amigo,

        Estou utilizando esta classe para gerar o código de barras de um boleto bancário.
        Estou exibindo os números juntamente com as barras.
        Gostaria de saber como personalizar o tamanho da fonte da exibição dos números. Estão exibindo muito grandes.

        Abs,
        Lásaro

  26. Prezado,

    Taylor,

    O banco retornou a homologação informando que o código deverá apresentar Start e Stop, e 44 posições.
    Como insiro o start e stop? e as 44 posições, eles se referem a que?

    Vlw,
    Lásaro

  27. Olá Taylor. muito bom post. fiz o cobebar como a opção um com o php.

    mas to com o seguinte dilema.

    se o código de barra é grande tipo umas 25 caracteres . a tela come o final. se faço o código pequeno tipo uns 7 caracteres. sobra tela brando a direita.

    tentei assim.

    mas nao obtive êxito em colcoar a tela brando no tamanho do código de barra. isso. é chato pois na loja tenho produtos com diferentes tamanhos de code de barras.

    • Olá Toledo. Penso que você pode controlar por meio de condicional (IF/ELSE) o width da tag IMG conforme a quantidade de caracteres. No post tem uma explicação sobre o “Por que o código de barras fica cortado e ilegível?”.

    • É fácil, faça a chamada com o último parâmetro do construtor barCodeGenrator() setando FALSE, conforme consta no Post:
      (6°) Se vai querer ou não exibir na etiqueta/imagem o número do código. true = exibe, e false = não.

  28. Chrystian disse:

    Olá Taylor.
    Estive verificando sua implementação em PHp e parece-me que ela não funciona com letras.
    As mesmas ficam zeradas na leitura do código de barras.
    Já testei em vários leitores que estão habilitados para leitura de letras e em nenhum deles funciona.
    Sei que você já respondeu esta pergunta, mas acho que realmente há um problema na geração das barras quando enviado letras.

  29. Wanderley B. Silva disse:

    Bom dia , alguem poderia me ajudar fiz conforme o indicado mas da a seguinte tela de erro:

    Warning: Cannot modify header information – headers already sent by (output started at /home/wdaluminios/www/encontro/conectardb.php:10) in /home/wdaluminios/www/encontro/barcode.inc.php on line 109 GIF87a¾‚¡ÿÿÿ,¾‚þŒ©Ëí£œ´Ú‹³

    Abraços
    Wanderley

  30. Boas ações como a sua ajudam e muito a todos.
    Sou Oficial da PMERJ e estou montando um sistema de saude e será muito util essa ferramenta de leitura de codigo de barras.
    Um abraço..

  31. Taylor, tudo bem?
    Estou usando sua biblioteca, mas esta aparecendo um erro, e já apanhei muito e não consigo resolver. Queria saber se pode me ajudar.?
    Estou usando a biblioteca: barcode.inc.php

    /**
      @author: Raj Trivedi (India), 2009-10-14 
      @modify: Taylor Lopes (Brazil), 2012-04-06
    */

    E para Gerar o código estou usando o seguinte código:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    $id=$_POST['id'];
    include("conexao.php");
    $sql="select*from medtronic where id='$id'";
    $execbanco=mysqli_query($conexao,$sql);
    $dados=mysqli_fetch_array($execbanco);
     
    <pre lang="php" line="1">
    echo $dados[&#039;email&#039;].&quot;";
    require_once('barcode.inc.php'); 
    $code_number = '123456'.$id;
    #new barCodeGenrator($code_number,0,'hello.gif');
    date_default_timezone_set('America/Sao_Paulo');
    $tempo = date('His');
    $n_arquivo="bar_$tempo.gif";
    new barCodeGenrator($code_number,1,"cod_bar/$n_arquivo", 90, 30, false);
    echo"";
    1
    
    window.print();

    Em resumo. Não sei se estou fazendo certo.
    Eu preciso gerar um código de barras, que fique vinculado ao cadastro, de preferencia com o id da pessoa no banco de dados. E preciso que o mesmo dê leitura no leitor de códigos de barras, aqueles tipo laser vermelho de hipermercado.

    Mas com este código esta aparecendo o seguinte erro:

    Fatal error: Call to undefined function imagecreate() in C:\Apache24\htdocs\medtronic\barcode.inc.php on line 30

    a linha 30, é a linha que fecho o código php (este código abaixo)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
                            echo $dados[&#039;email&#039;].&quot;";
                            require_once('barcode.inc.php'); 
                            $code_number = '123456'.$id;
                            #new barCodeGenrator($code_number,0,'hello.gif');
                            date_default_timezone_set('America/Sao_Paulo');
                            $tempo = date('His');
                            $n_arquivo="bar_$tempo.gif";
                            new barCodeGenrator($code_number,1,"cod_bar/$n_arquivo", 90, 30, false);
                            echo"";
    LINHA 30

    Consegue me ajudar?

    se puxar somente o “id” do cadastro e gerar o código já esta ótimo. Ai eu mudo aqui e coloco para is id terem no mínimo 6 dígitos.

    Obrigado pela ajuda!

    • Oi Alexandre,

      Tente rodar um código simples, como este:

      1
      2
      3
      4
      5
      
      <?php
      require_once('barcode.inc.php'); 
      $code_number = '125689365472365458';
      new barCodeGenrator($code_number,0,'hello.gif', 190, 130, true);
      ?>

      Caso não apareça o código de barras, veja se não faltou você habilitar a biblioteca GD no seu php.ini. Baste tirar o “;” de “;extension=php_gd2.dll”.

      Acabei de testar o script do código de barras e está funcionando.

      Abraços!

  32. José Vieira disse:

    Boa tarde:
    Script muito bom. No entanto (e no meu caso) o meu leitor teima em não ler o código de barras- penso que seja uma questão de configuração do leitor-, porque u consigo ler o código através do telemóvel. O pior é o “0” que aparece no inicio.
    Abraços

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *