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.

 

33 pensamientos sobre “Código de barras bidimensional (CBB)

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

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

  3. 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!!..

    • 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.

  4. 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

    • 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

    • 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

  5. 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#

    • 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

  6. 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

  7. 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.

    • 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

  8. 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

  9. 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

  10. 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.

  11. 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.

  12. 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

  13. 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

  14. 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.

  15. Estoy usando la version 2011.7.4.0 en un proyecto de c# y me da error al invocar el metodo generate file. La dll esta en el directorio bin. Podrias oriientarme si es la version o estoy haciendo algo incorrecto. Muchas gracias.

    public class BarCode
    {
    [DllImport("BarCodeLibrary.dll")]
    public static extern void GenerateFile(string text,string fileName);

    [DllImport("BarCodeLibrary.dll")]
    public static extern void SetConfiguration(int size, int imageformat);
    }

    • Leondardo,

      Ya no ofrecemos soporte a dicha versión; por favor ponte en contacto con nosotros y con gusto te apoyamos para que te actualices a la última versión.

      Saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>