Esse artigo faz parte da revista .NET Magazine edição 63. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler essa revista em PDF.imagem_pdf.jpg

 

Código de barras na plataforma .Net

 

Utilização de códigos de barras vem crescendo cada vez mais. As “barras pretas e brancas” estão presentes em todas as partes, desde um pacote de balas até um enorme container. O código de barras acelera os processos nos caixas de farmácias, caixas de supermercados, postos fiscais, entre outros. O grande papel do código de barras é facilitar e agilizar a captura de informações como códigos numéricos, chaves de acesso, entre outros. Dada sua importância, dependendo da área de atuação de um determinado sistema seu tratamento, geração, impressão é um requisito primordial.

Neste artigo vou mostrar como construir uma classe que recebe um número e retorna uma imagem de código de barras representando o número informado no padrão CODE-128C.

 

Padrões de código de barras

É importante lembrar que existem diversos tipos de códigos de barras, como o EAN13, 39 e muitos outros. Este artigo apresenta o código de barras CODE-128C que é um código de barras numérico que vem sendo utilizado no contexto da Nota Fiscal Eletrônica (NFE).

O código de barras CODE-128C é uma representação gráfica de dados numéricos, ou seja, representa apenas números. Cada número é representado por uma combinação de barras pretas e brancas. Cada dígito no código de barras é representado por seis elementos, o número zero, por exemplo, é representado pela seguinte sequência de barras: duas pretas, uma branca, duas pretas, duas brancas, duas pretas e duas brancas. O leitor de código de barras ao encontrar essa seqüência reconhece como sendo número zero. Um outro ponto importante é que o código de barras contém dois elementos conhecidos como Start e Stop. O Start informa o ponto de início do código, o Stop informa o fim do código.

 

Criando a Class Library

A classe de código de barras é uma classe simples que pode ser adicionada como um novo item em aplicações Windows e Web, porém para ficar mais elegante, vamos criar uma biblioteca separada para ela.

Abra o Visual Studio 2008 e crie uma nova aplicação do tipo Class Library, utilizando como linguagem base o C#. Utilize o nome CodigoDeBarras, no campo Solution Name especifique SolucaoDotNet e marque a opção Create directory for solution, conforme Figura 1.

 

Figura 1. Criando o novo projeto Class Library

 

Dessa forma foi criada uma solução chamada SolucaoDotNet  que contém um projeto chamado CodigoDeBarras. Ainda note que o projeto contém uma classe chamada Class1. Altere o nome da classe e seu arquivo para CodigoBarra128C.

 

Codificando a Class Library

O primeiro passo é adicionar uma referência ao namespace System.Drawing . Clique com o botão direito sobre o projeto CodigoDeBarras e selecione o item Add Reference. Na janela que se abre selecione a aba .Net. Localize e clique sobre o componente System.Drawing e então clique em Ok. 

O segundo passo é adicionar os namespaces na classe. Os dois namespaces utilizados são:

 

using System;

using System.Drawing;

 

O namespace System contém classes fundamentais e classes base que definem tipo de dados, valores, eventos, interfaces, atributos entre outros. O foco deste artigo é o namespace System.Drawing. Ele provê acesso para funcionalidades gráficas básicas GDI+. A classe Graphics, a qual será bastante utilizada na geração do código de barras, provê métodos para desenhar no dispositivo de exibição. A classe Pen é utilizada para desenhar linhas e curvas, enquanto que as classes derivadas da classe abstrata Brush são utilizadas para preencher o interior de formas e figuras.

 

Nota do DevMan

Graphics Device Interface (GDI+) é um conjunto de classes que habilitam aplicações a utilizarem gráficos e textos formatados em dispositivos de vídeo e impressoras. Em sistemas Windows, a GDI é responsável pela parte gráfica do sistema operacional, que inclui o desenho de linhas e curvas, exibição de fontes e gerenciamento das cores. Contudo, ela não é diretamente responsável pelo desenho das janelas, menus etc. Isso é trabalho de um subsistema do sistema operacional, encapsulado na DLL user32.dll. Essa DLL para realizar suas operações se utiliza da GDI. Como oferece recursos em 2D apenas, outras APIs são utilizadas para desenhar em 3D, como a DirectX ou OpenGL.

 

Vamos alterar o namespace da classe para DotNetMagazine.CodigoDeBarras. E para finalizar a estrutura da classe, adicione o modificador public antes do nome da classe para tornar a classe pública e permitir que ela seja acessada por outros projetos. Adicione também o modificador static para informar que os métodos da classe estarão disponíveis sem a necessidade de instanciá-la. A estrutura base da classe deve ficar como a Listagem 1.

 

Listagem 1. Estrutura base da classe

using System;

...

Quer ler esse conteúdo completo? Tenha acesso completo