Código de barras bidimensional (CBB)

Como ya todos sabemos dicho código fue definido por la autoridad (SAT) como un requerimiento en la representación impresa del CFDI, el cual debe contener los siguientes datos:

  1. RFC del emisor
  2. RFC del receptor
  3. Total (a 6 decimales fijos)
  4. Identificador único del timbre (UUID) asignado

Dicho código es generado debe ser generado bajo el estándar QR Code, para mayor información pueden dar clic aquí.

BarCodeLibrary.dll es una DLL de Win32 que he desarrollado para poder generar el código de barras bidimensional (CBB) desde cualquier lenguaje de programación (Visual Basic, Visual FoxPro, Clarion, PowerBuilder, etc) y la cual expone 3 métodos para tal fin:

LibraryVersion

  • En realidad es una función que regresa una cadena de texto
  • No recibe ningún parámetro
  • Es usada para obtener la versión de la biblioteca

SetConfiguration

  • Es un método que permite configurar el tamaño y el tipo de archivo a generar.
  • Recibe dos parámetros, el primero se llama size y el según imageformat, los dos son de tipo entero.
  • Size es usado para determinar el tamaño del QR Code a generar, su valor recomendado es 4 y sus posibles valores son entre 4 y 6
  • Imageformat indica el tipo de imagen (archivo) a generar y sus posibles valores son: 0 para  BMP, 1 para JPG y 2 para PNG.
  • Por default estos valores son 4 para size y 0 para  Imageformat,

GenerateFile

  • Es el método más importante de la biblioteca, ya que es el encargado de genera el código de barras bidimensional o CBB como le decimos algunos.
  • Recibe dos parámetros: text que es el texto que va a contener el código y fileName que es el nombre y ruta del archivo que se va a generar, este nombre debe contener la extensión de acuerdo a lo definido en el método SetConfiguration.
  • Para su uso NO es necesario llamar previamente al método SetConfiguration

Como podemos ver es muy fácil usar dicha biblioteca, solo debemos importarla a nuestro lenguaje de programación favorito e invocar el método GenerateFile.

Para  finalizar pueden descarga el anexo 20 dando clic aquí y revisar la página 110 que es donde se da toda la especificación para el manejo de código de barras bidimenacional.

Hasta la próxima.

 

  • Monserrat G.

    Hola darioaa, oye tengo una inquietud, quisiera saber si tienes disponible esta biblioteca o en que lugar podria encontrarla… Saludos

    • darioaa

      Hola Monserrat…

      En la pagina principal del sitio Electronic Document puedes encontrar la dos versiones.

      Saludos

  • Monserrat G.

    Muchisimas gracias Darioaa, me son de gran utilidad, una ultima pregunta tengo que solicitarte la licencia de este desarrollo?

  • manuelB

    Hola Darioaa, yo uso vb6 y solo necesito generar el CBB, pero al agregar la dll en el proyecto me pone el siguiente error: “No se puede agregar una referencia al archivo especificado”.. me podrías orienta a que se debe este error por favor, y muchas gracias por tu aportación a la comunidad de programadores con tu libreria, ya sabes “El mundo es mejor si compartimos”, gracias de nuevo y un saludo!!..

    • darioaa

      Hola Manuel.

      Desgraciadamente no te puedo ayudar en el tema, ya que no conozco Visual Basic, siempre he trabajado con Delphi y con C#.

      Lo que si te puedo decir es que existen usuarios usando la biblioteca desde Visual Basic y desde otros lenguajes de programación, yo por ejemplo la uso desde C#.

      Espero que alguien que ya lo tenga implementado de puedo ayudar.

  • Roger Ruiz

    Hola Dario

    Acabo de descargar la dll, pero al generar el archivo lo graba en la ruta indicada pero con el nombre ‘ér¢©ÿéPüÿÿ^[‹å]Ã’ o sea no respeta el nombre que quiero ‘C:\Sistemas\Facturacion\CBB.bmp’ a que se deberá.

    Saludos
    Roger

  • Mty

    La libreria para el codigo de barras funciona en windows server 2008 de 64 bits

  • Mty

    la libreria de codigo de barras funciona en windows server 2008 de 64 bits

    • darioaa

      Hola,

      La librería fue compilada para 32 Bits, sería cuestión de que investigaras si te puede presentar algún problema; yo hice una aplicación que se ejecuta en la versión de Windows que comentas y no tuve problemas, lo único es que la aplicación, que está en .Net, la compile para 32 Bits.

      Saludos

  • Mty

    yo utlizo Visual Studio 2008 y no funciono, la primera ocasion marco error, y despues ya no marca el error, pero no graba el archivo

    • darioaa

      Hola,

      Actualmente uso la librería desde C# Visual Studio 2010, si gustas de puedo pasar el código que uso para importarla, por favor deja tu correo y te lo hago llegar.

      Saludos

  • fewar

    Estoy usando VB 2008 y no funciona, intente tambien con vb6 y nada simplemente la libreria no puede ser agrega al proyecto, tienes ejemplos aunque se en c#

    • darioaa

      Hola,

      Ya te envíe a tu correo como se importa la DLL para el caso de C#; si llegas a hacer en Visual Basic.Net (VB.Net) te agradecería que lo compartieras con la comunidad.

      Saludos

  • Jaime

    Tengo Windows XP y VB 6.0, y al tratar de registrar la dll manda el error: se descargo c:\….\barcodelibrary.dll, pero no sencontro punto de entrada DllRegisterServer. No se puede registrar este archivo.

    ¿que recomiendas hacer?

    Saludos

    • darioaa

      Hola Jaime,

      No es necesario registrar la libreria para poderla usar, solo debes de importarla a tu lenguaje.

      Saludos

  • carlitros.mzo

    Hola, buen día, soy novato en esto me pueden ayudar a darme una parte de código en C# usando visual studio 2008 de cómo utilizar la librería, no puedo iniciarla, cómo la instancio ???. Gracias.

    • darioaa

      Hola Carlos

      La biblioteca trae consigo una seria de ejemplos en donde se muestra el funcionamiento de la misma, son más 20 ejemplos en donde se ilustra cómo usar cada aspecto.

      El código en cada ejemplo viene acompañado con una serie de comentarios, los cuales te pido revises detenidamente ya que te va a ser de gran ayuda.

      No me queda más que invitarte a probarla y si tienes alguna duda puedes escribir al foro donde con gusto te estaré apoyando.

      Saludos

  • Cristian Robles

    Hola, he hecho pruebas con esta librería y me ha funcionado correctamente sólo que hoy que segúia probando me dice que la librería no está actualizada y que no hay soporte. Me manda a la liga de http://www.electronicdocument.com.mx.

    Puedes orientarme acerca de este error?

    Saludos.

  • Cristian Robles

    Hola, he estado probando la librería sin ningún problema pero estama semana que hicimos otras pruebas me empezó a mandar un mensaje de que no estaba actualizada.

    Es esto normal?

    Saludos y quedo en espera de sus comentarios.

    Cristian Robles

    • darioaa

      Hola Cristian

      Es correcto, seguramente tenías una versión desactualizada, solamente debes de actualizarla y listo.

      Saludos

  • Juan Luis Meza

    Hola

    Para quienes tienen duda de como importar la libreria Barcodelibrary.dll usando vb.net (cualquier version):

    Imports System.Runtime.InteropServices
    Public Class BarCode
    Public Shared Sub GenerateFile(ByVal text As String, ByVal fileName As String)
    End Sub
    Public Shared Sub SetConfiguration(ByVal size As Integer, ByVal imageformat As Integer)
    End Sub
    End Class

  • Juan Luis Meza

    Perdon, el codigo correcto para quienes tienen duda de como importar la libreria Barcodelibrary.dll usando vb.net (cualquier version):

    Imports System.Runtime.InteropServices
    Public Class BarCode
    DllImport(“BarCodeLibrary.dll”) Public Shared Sub GenerateFile(ByVal text As String, ByVal fileName As String)
    End Sub
    DllImport(“BarCodeLibrary.dll”) Public Shared Sub SetConfiguration(ByVal size As Integer, ByVal imageformat As Integer)
    End Sub
    End Class

    Aclaro que DllImport(“BarcodeLibrary.dll”) debe ir entre los simbolos de Mayor que y Menor que, los cuales por algun razon no los puedo poner aqui.

    • darioaa

      Gracias por tu aportación Juan,

  • http://www.borsan.es David

    Una pregunta.
    Estoy probando la dll pero me genera un codigo qr con el texto que le paso cortado por la mitad tiene 400 caracteres. ¿Tiene la dll alguna limitación del tamaño del texto?

    gracias.
    saludos.

    • darioaa

      Hola David,

      No existe ningún límite, aunque nos surge la duda, porque tienes más de 400 caracteres.

      Saludos

  • javina

    Estimado Darío:

    Estoy realizando pruebas y me genera correctamente el CBB pero al escanearlo me duplica el valor de total en el campo de uuid.

    Por tu apoyo gracias

    Saludos

    • darioaa

      Te invitamos a usar nuestro foro que es lugar que hemos creado para apoyar a todos los usuarios.

      Saludos

  • cmra

    Me podrian decir el codigo para vfp 9, y como leer desdpues este codigo

  • Jose Alberto

    Dario buen dia, excelente incio de año, me podrias ayudar con el codigo de barras, tengo esta parte del codigo en delphi2010,
    archivo := ExtractFilePath(Application.ExeName) + ‘\cbb.bmp’;
    GenerateFile(Pchar(edit1.Text),Pchar(archivo));
    image1.Picture.LoadFromFile(archivo);
    el problema es que la imagen nunca cambia siempre es la misma, sabes porque es ya instale el documt library

  • Speedy Merol

    Hola que tal. Recien descubri este blog y me interesa mucho darle una checada a la libreria que mencionas. Me podrias indicar como la puedo obtener?

    Saludos.