quarta-feira, 14 de outubro de 2009

Como gerar códigos de barras com java






Olá a todos novamente!
Estou aqui para apresentar um post bastante interessante, sobre como gerar códigos de barras com java.

Inicialmente para fazer isso, nós precisaremos da biblioteca "barbecue.jar".
A Barbecue é uma biblioteca java open-source que fornece meios para criar códigos de barras para impressão e visualização em suas aplicações.

Vocês poderão encontrar a documentação dessa biblioteca em:
http://barbecue.sourceforge.net/apidocs
Assim como efetuar o download.

Inicialmente nós deveremos possuir o arquivo barbecue.jar e inseri-lo dentro do nosso projeto.
Feito isto nós já temos a possibilidade de utilizar as várias opções que esta maravilhosa biblioteca nos disponibiliza.

O código que mostrarei logo abaixo terá como função gerar um código de barras e salva-lo como uma imagem no diretório raiz do computador.



public void GeraCodigoBarras(String value) {
try {

01. net.sourceforge.barbecue.Barcode barcode = BarcodeFactory.createCode128(value);
02. barcode.setDrawingText(false);
03. BufferedImage image = new BufferedImage(100, 150,BufferedImage.TYPE_BYTE_GRAY);
04. Graphics2D g = (Graphics2D) image.getGraphics();
05. g.setBackground(Color.BLUE);
06. barcode.draw(g, 10, 56);
07. File f = new File("c:/barras.jpg");
08. File f1 = new File("c:/barras.png");
09. File f2 = new File("c:/barras.png");

10. BarcodeImageHandler.saveJPEG(barcode, f);
11. BarcodeImageHandler.savePNG(barcode, f1);
12. BarcodeImageHandler.saveGIF(barcode, f2);
} catch (Exception ex) {
ex.getMessage();
}
}

Como podem ver, o valor do código de barras é passado como parametro, sendo ele uma String.

Na linha 1 nós criamos um objeto do tipo barcode. Este objeto provem de uma classe abstrata que extende a classe JComponent do swing e implementa a interface Printable do pacote print do awt.

É aqui que nós devemos setar qual é o modelo padrão do nosso código de barras. Por default ele vem com vários modelos podendo serem inseridos novos.
No comando "BarcodeFactory.createCode128(value);" é que podemos ver isto.
Ou seja, com isso estou dizendo que eu quero que meu código de barras seja criado com o modelo 128.

Exemplos de criação com outros modelos são:

BarcodeFactory.createEAN128(value) ;
BarcodeFactory.createEAN13(value);
BarcodeFactory.create3of9(value, false);

E por aí vai(Verifiquem na documentação).

Por default quando geramos um código de barras toda a numeração dele é inserida logo abaixo da imagem.
A linha de comando número 2 é responsavel por dizer que a numeração não deverá ser impressa junto com a imagem do código. Mas aí fica a critério do desenvolvedor. Caso queiram que a numeração venha junto com a imagem, não escrevam a linha 2 ou declare-a como true.

Nas linhas 3 à 6 nós desenhamos a imagem que será salva.
Nas linhas 10,11 e 12 nós estamos salvando a imagem nos respectivos formatos que vocês podem ver.
Este método recebe num parâmetro o objeto barcode já desenhado e no outro um objeto File que mostrará o caminho para onde a imagem deverá ser salva.

Com isso caros amigos nós teremos o nosso código de barras salvo em uma imagem.

Com a classe Barcode nós também conseguimos visualizar o código de barras antes de salva-lo.
Com o método creatImage que nos retorna um objeto do tipo Image, nós conseguimos visualizar este código de barras sem que pra isso tenhamos que salva-lo em disco.

Image image= barcode.createImage(90, 10);
//Com o objeto Image em mãos podemos converte-lo em um ImageIcon e apresenta-lo em um JLabel

Bem amigos, por hoje irei ficando por aqui!

Mais uma vez espero ter ajudado!

Abraço a todos!

2 comentários:

  1. Blz. E para gerar código do tipo Data Matrix?

    ResponderExcluir
  2. Não sei onde fazer o download da biblioteca em:
    http://barbecue.sourceforge.net/apidocs

    ResponderExcluir