En este artículo, demostraré cómo generar códigos de barras mediante programación usando C++. También aprenderá a implementar un escáner o lector de código de barras dentro de sus aplicaciones C++.

generar código de barras en C++

Los códigos de barras se utilizan para representar visualmente los datos en forma legible por máquina. Dicha tecnología ha demostrado ser útil especialmente en los sistemas de pago automático implementados en tiendas y supermercados. Casi todos los productos en el mercado en estos días contienen un código de barras. Esta gran popularidad del código de barras ha ampliado sus casos de uso en varios dominios. Sin perder de vista la importancia de los códigos de barras, hace unos años, Aspose lanzó una API de lector y generador de códigos de barras para varias plataformas. Este artículo tiene como objetivo mostrar cómo implementar el generador y lector de códigos de barras dentro de las aplicaciones de C++ para generar y leer códigos de barras dinámicamente.

API de lector y generador de código de barras C++

Aspose.BarCode for C++ es una API de C++ rica en funciones para generar y leer una multitud de códigos de barras 1D y 2D. Le permite generar, personalizar y exportar los códigos de barras a imágenes de alta calidad. Puede descargar los archivos de la biblioteca desde la sección Descargas. El paquete descargable también contiene una aplicación C++ de demostración para usted.

La siguiente es la lista de simbologías de códigos de barras que puede generar usando Aspose.BarCode for C++:

  • código128
  • Código39 estándar
  • Código 39 extendido
  • Código93 estándar
  • Código 93 extendido
  • Código11
  • Codabar
  • BooklandEAN
  • EAN13
  • EAN8
  • EAN128
  • Intercalado2de5
  • Estándar2de5
  • MSI
  • posnet
  • Planeta
  • UPCA
  • UPCE
  • EAN14(SCC14)
  • SSCC18
  • ITF14
  • Suplemento de código de barras
  • Pdf417
  • código QR
  • Matriz de datos
  • Matriz 2 de 5
  • PZN (Pharma Zentral Nummer, código de barras Pharmazentralnummer)
  • Código de identificación de Deutsche Post
  • azteca
  • Correo de Australia

Generar un código de barras usando C++

La generación de un código de barras usando Aspose.BarCode se puede lograr con un par de líneas de código. Los siguientes son los pasos para realizar esta operación.

El siguiente ejemplo de código muestra cómo generar un código de barras usando C++.

const System::String codeText = u"1234567";
const System::String fileName = u"code39_barcode.jpg";
// Crear generador de código de barras
System::SharedPtr<BarcodeGenerator> barcodeGenerator = System::MakeObject<BarcodeGenerator>(EncodeTypes::Code39Standard, codeText);
barcodeGenerator->get_Parameters()->set_Resolution(300);
// Generar código de barras y guardar como imagen
barcodeGenerator->Save(fileName);

El siguiente es el código de barras que hemos generado utilizando el código anterior.

Genere código de barras 2D (QR u otro) usando C++

En el ejemplo anterior, hemos creado un código de barras unidimensional. Ahora vamos a crear un código de barras bidimensional como un código QR. Los siguientes son los pasos para crear un código de barras QR.

El siguiente ejemplo de código muestra cómo generar un código de barras QR usando C++.

const System::String codeText = u"1234567";
const System::String fileName = u"QR_Code.jpg";
// Crear generador de código de barras
System::SharedPtr<BarcodeGenerator> barcodeGenerator = System::MakeObject<BarcodeGenerator>(EncodeTypes::QR, codeText);
barcodeGenerator->get_Parameters()->set_Resolution(300);
// Generar código de barras y guardar como imagen
barcodeGenerator->Save(fileName);

El siguiente código QR se generará utilizando el código anterior.

Genere códigos de barras personalizados usando C++

También puede personalizar la apariencia del código de barras. Por ejemplo, puede establecer el color de primer plano, el color de fondo, el tamaño, el estilo del borde, etc. A continuación se muestran los pasos para personalizar los códigos de barras con Aspose.BarCode for C++.

  • Cree e inicialice el objeto de la clase BarcodeGenerator.
  • Acceda a los parámetros del código de barras utilizando los métodos BarcodeGenerator->getParameters().
  • Establezca los parámetros deseados.
  • Genere el código de barras y guárdelo como una imagen.

El siguiente ejemplo de código muestra cómo generar un código de barras personalizado mediante C++.

System::SharedPtr<BarcodeGenerator> barcodeGenerator = [&] { auto tmp_0 = System::MakeObject<BarcodeGenerator>(EncodeTypes::Aztec, System::String(u"1234567890"));
// establecer estilo broder
tmp_0->get_Parameters()->get_Border()->set_DashStyle(Aspose::BarCode::BorderDashStyle::Solid);
// establecer ancho
tmp_0->get_Parameters()->get_Border()->get_Width()->set_Millimeters(1.0f);
// establecer la visibilidad del borde
tmp_0->get_Parameters()->get_Border()->set_Visible(true);
// establecer el color de fondo
tmp_0->get_Parameters()->set_BackColor(System::Drawing::Color::get_Black());
// establecer el color de la barra del código de barras
tmp_0->get_Parameters()->get_Barcode()->set_ForeColor(System::Drawing::Color::get_Orange());
// establecer el color del borde
tmp_0->get_Parameters()->get_Border()->set_Color(System::Drawing::Color::get_Black());
// establecer el color del texto
tmp_0->get_Parameters()->get_Barcode()->get_CodeTextParameters()->set_Color(System::Drawing::Color::get_Orange());
// establecer la resolución de la imagen
tmp_0->get_Parameters()->set_Resolution(400);
return tmp_0; }();	
 
barcodeGenerator->Save(System::String(u"custom_barcode.jpg"));

El siguiente es el código de barras Aztec personalizado que hemos generado.

Genere códigos de barras con un título usando C++

Los códigos de barras también pueden contener el título debajo o encima del código de barras. Puede configurar el texto de la leyenda, así como su visibilidad en la imagen del código de barras. El siguiente ejemplo de código muestra cómo generar un código de barras con los subtítulos usando C++.

System::SharedPtr<BarcodeGenerator> generator = [&] { auto tmp_0 = System::MakeObject<BarcodeGenerator>(EncodeTypes::Code39Standard, System::String(u"1234567890"));
// establecer subtítulo arriba
tmp_0->get_Parameters()->get_CaptionAbove()->set_Text(u"Caption Above");
// establecer visibilidad
tmp_0->get_Parameters()->get_CaptionAbove()->set_Visible(true);
// establecer el título a continuación
tmp_0->get_Parameters()->get_CaptionBelow()->set_Text(u"Caption Below");
// establecer visibilidad
tmp_0->get_Parameters()->get_CaptionBelow()->set_Visible(true);
// establecer resolución
tmp_0->get_Parameters()->set_Resolution(300);
return tmp_0; }();
generator->Save(System::String(u"barcode_caption.jpg"));

El siguiente es un código de barras con los títulos de arriba y abajo.

Escanear y leer códigos de barras usando C++

Veamos ahora cómo escanear y leer los códigos de barras usando Aspose.BarCode for C++. Los siguientes son los pasos para realizar esta función.

  • Cree una instancia de la clase BarCodeReader.
  • Inicialice la instancia de BarCodeReader con el archivo de imagen del código de barras y su simbología.
  • Use el método BarCodeReader->Read() para recuperar el texto y el tipo del código de barras.

El siguiente ejemplo de código muestra cómo escanear y leer un código de barras usando C++.

// Crear una instancia de la clase BarcodeGenerator 
System::SharedPtr<BarCodeReader> reader = System::MakeObject<BarCodeReader>(u"Code128.png", DecodeType::Code128);
while (reader->Read())
{
	// Mostrar texto de código y tipo de simbología
	System::Console::WriteLine(System::String(u"CodeText: ") + reader->GetCodeText());
	System::Console::Write(System::String(u"Symbology Type: ") + reader->GetCodeType());
}
reader->Close();

Leer códigos de barras con múltiples simbologías usando C++

La mayoría de las veces, una imagen contiene solo una simbología de código de barras. Sin embargo, en ciertos casos, la imagen puede contener códigos de barras de múltiples simbologías al mismo tiempo. En tales casos, puede proporcionar una lista de las simbologías de códigos de barras para escanear y leer.

El siguiente ejemplo de código muestra cómo escanear una imagen que tiene múltiples simbologías de código de barras usando C++.

// Establecer simbologías de códigos de barras
System::ArrayPtr<System::SharedPtr<BaseDecodeType>> objArray = System::MakeArray<System::SharedPtr<Aspose::BarCode::BarCodeRecognition::BaseDecodeType>>({ DecodeType::Code39Standard, DecodeType::Pdf417 });

// Inicialice el BarCodeReader, llame al método Read() en un bucle y muestre el código de texto y el tipo de simbología
System::SharedPtr<BarCodeReader> reader = System::MakeObject<BarCodeReader>(u"RecognizingMultipleSymbologies.png", objArray);
while (reader->Read())
{
	System::Console::WriteLine(System::String(u"Codetext: ") + reader->GetCodeText());
	System::Console::WriteLine(System::String(u"Symbology type: ") + reader->GetCodeType());
}
reader->Close();

Conclusión

En este artículo, ha aprendido a generar códigos de barras con diferentes simbologías utilizando C++. Además, también se analiza el procedimiento de escaneado y lectura de códigos de barras junto con ejemplos de código C++. Puede explorar más sobre la API usando la documentación.

Ver también