domingo, 13 de marzo de 2011

Generar Código de Barras en VB .net



Aplicacion en Visual Basic .net

Existen varias maneras para  generar un código de barras, la que utilizaremos es la más fácil: el uso de Fuentes true type.

Algo que es importante tomar en cuenta es que si queremos que un lector de códigos de barras lea nuestros códigos hay que encerrar este entre asteriscos (*código*).

Para crear nuestra fuente utilizaremos un archivo .TTF y cargaremos el resultado en una imagen en el Form.

Pasos
1.    Crear un nuevo proyecto para Visual Basic 
  •      Agregar al Form los siguientes objetos
·         3 Label
·         1 TextBox
·         1 ComboBox
·         1 Button
  • Agregar el siguiente código al programa:

Imports System
Imports System.IO
Imports System.Drawing
Imports System.Drawing.Font
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Data
Imports System.Drawing.Text

Public Class Form1
    Private fuente As Font
    Private directorioFuentes As String

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Directorio en el cual se almacenan las fuentes
        directorioFuentes = "C:\Fuentes"
        'Inicializamos la Fuente.
        CargarListaFuentes()
    End Sub

    Public Function CargarListaFuentes()
        Try
            Dim Directorio As DirectoryInfo
            Directorio = New DirectoryInfo(directorioFuentes)

            If (Directorio.Exists) Then
                Dim Archivo As FileInfo()
                Archivo = Directorio.GetFiles()
                For Each fuentes As FileInfo In Archivo
                    If fuentes.Extension = ".TTF" Then
                        cbxCodigos.Items.Add(fuentes.Name)
                    End If
                Next
                cbxCodigos.SelectedIndex = 0 'Fuente por default
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
        Return True
    End Function

    Public Function CargarFuente(ByVal _fuente As String)
        Dim pfc As PrivateFontCollection = New PrivateFontCollection()
        Dim fontFamily As FontFamily

        pfc.AddFontFile(directorioFuentes & "\" & _fuente)
        fontFamily = pfc.Families(0)
        fuente = New Font(fontFamily, 30)
        Return True
    End Function

    Public Function FormatoCodigoBarras(ByVal code As String) As String
        Dim barcode As String = String.Empty
        barcode = String.Format("{0}", code)
        Return barcode
    End Function

    Private Sub btnGenerar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGenerar.Click
        Try
            If txtCodigo.Text = String.Empty Then
                lblCodigo.Text = "Tienes que introducir un Código"
            Else
                If Not (fuente Is Nothing) Then
                    lblCodigo.Font = fuente
                    lblCodigo.Text = FormatoCodigoBarras(txtCodigo.Text)
                    lblCode.Text = FormatoCodigoBarras(txtCodigo.Text)
                End If
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub cbxCodigos_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbxCodigos.SelectedIndexChanged
        Try
            CargarFuente(cbxCodigos.Text)
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical)
        End Try
    End Sub
End Class

Al correr el programa se tendrá una pantalla como la siguiente. En este caso se muestra el resultado de convertir 14187 a código de barras.


Código basado en:
http://www.elguille.info/colabora/NET2006/Marckys_BarCode.htm

9 comentarios:

Darkness dijo...

Me parece bastante acertada y útil la info, ya hacía buen rato buscaba algo parecido.. Se te agradece las buenas intenciones. Gracias.

odem dijo...

excelente aporte, estoy realizando un proyecto y necesitava algo muy similar de apoyo

Unknown dijo...

Muy buen aporte!!! Gracias!!
Yo te recomiendo esta web con fuentes de codigos de barras (ver enlace)
Saludos

Unknown dijo...

MUY BUEN APORTE muchas gracias muchas gracias tengo una consulta al correr el programa no me carga nada en la var directorioFuentes = "C:\Fuentes" y por ende no me carga nada en el combo box ayuda por favor

Unknown dijo...

Gradeciendote mucho esta información. Que seas muy feliz y realmente bendecido al haber encontrado esta información.

Unknown dijo...

Excelente ...!!!!

Menny dijo...

Lo ejecuto y no me genera el código de barra ¿alguien puede ayudarme ?

Talento Chocoano dijo...

excelente

Unknown dijo...

Que pena, no me corre... no me genera nada...

Publicar un comentario