Dans cet article, je vais montrer comment générer des codes-barres par programmation à l’aide de C++. Vous apprendrez également à implémenter un scanner ou un lecteur de codes-barres dans vos applications C++.

générer un code-barres en C++

Les codes-barres sont utilisés pour représenter visuellement les données sous une forme lisible par machine. Cette technologie s’est avérée utile notamment dans les systèmes de caisses automatiques déployés dans les magasins et les supermarchés. Presque tous les produits sur le marché de nos jours contiennent un code-barres. Cette popularité généralisée du code-barres a étendu ses cas d’utilisation dans divers domaines. Gardant un œil sur l’importance des codes-barres, il y a quelques années, Aspose a lancé un générateur de codes-barres et une API de lecteur pour diverses plateformes. Cet article vise à montrer comment implémenter le générateur et le lecteur de codes-barres dans les applications C++ pour générer et lire dynamiquement des codes-barres.

Générateur de codes-barres C++ et API de lecteur

Aspose.BarCode for C++ est une API C++ riche en fonctionnalités pour générer et lire une multitude de codes-barres 1D et 2D. Il vous permet de générer, personnaliser et exporter les codes-barres vers des images de haute qualité. Vous pouvez télécharger les fichiers de la bibliothèque à partir de la section Téléchargements. Le package téléchargeable contient également une application de démonstration C++ pour vous.

Voici la liste des symbologies de codes-barres que vous pouvez générer à l’aide de Aspose.BarCode for C++ :

  • Code128
  • Norme Code39
  • Code39 étendu
  • Norme Code93
  • Code93 étendu
  • Code11
  • Codebar
  • BooklandEAN
  • EAN13
  • EAN8
  • EAN128
  • Entrelacé2of5
  • Norme2sur5
  • MSI
  • Postnet
  • Planète
  • UPCA
  • SEPC
  • EAN14(SCC14)
  • SSCC18
  • ITF14
  • Supplément Code-barres
  • Pdf417
  • QR
  • Matrice de données
  • Matrice 2 sur 5
  • PZN (Pharma Zentral Nummer, code-barres Pharmazentralnummer)
  • Code d’identification Deutsche Post
  • Aztèque
  • Poste australienne

Générer un code-barres en C++

La génération d’un code-barres à l’aide d’Aspose.BarCode peut être réalisée en quelques lignes de code. Voici les étapes pour effectuer cette opération.

L’exemple de code suivant montre comment générer un code-barres à l’aide de C++.

const System::String codeText = u"1234567";
const System::String fileName = u"code39_barcode.jpg";
// Créer un générateur de code-barres
System::SharedPtr<BarcodeGenerator> barcodeGenerator = System::MakeObject<BarcodeGenerator>(EncodeTypes::Code39Standard, codeText);
barcodeGenerator->get_Parameters()->set_Resolution(300);
// Générer un code-barres et enregistrer en tant qu'image
barcodeGenerator->Save(fileName);

Voici le code-barres que nous avons généré à l’aide du code ci-dessus.

Générer un code-barres 2D (QR ou autre) en utilisant C++

Dans l’exemple précédent, nous avons créé un code-barres unidimensionnel. Créons maintenant un code-barres bidimensionnel tel qu’un code QR. Voici les étapes pour créer un code-barres QR.

L’exemple de code suivant montre comment générer un code-barres QR à l’aide de C++.

const System::String codeText = u"1234567";
const System::String fileName = u"QR_Code.jpg";
// Créer un générateur de code-barres
System::SharedPtr<BarcodeGenerator> barcodeGenerator = System::MakeObject<BarcodeGenerator>(EncodeTypes::QR, codeText);
barcodeGenerator->get_Parameters()->set_Resolution(300);
// Générer un code-barres et enregistrer en tant qu'image
barcodeGenerator->Save(fileName);

Le code QR suivant sera généré à l’aide du code ci-dessus.

Générer des codes-barres personnalisés à l’aide de C++

Vous pouvez également personnaliser l’apparence du code-barres. Par exemple, vous pouvez définir la couleur de premier plan, la couleur d’arrière-plan, la taille, le style de bordure, etc. Voici les étapes pour personnaliser les codes à barres à l’aide de Aspose.BarCode for C++.

  • Créez et initialisez l’objet de la classe BarcodeGenerator.
  • Accédez aux paramètres du code-barres à l’aide des méthodes BarcodeGenerator->getParameters().
  • Définissez les paramètres souhaités.
  • Générez le code-barres et enregistrez-le sous forme d’image.

L’exemple de code suivant montre comment générer un code-barres personnalisé à l’aide de C++.

System::SharedPtr<BarcodeGenerator> barcodeGenerator = [&] { auto tmp_0 = System::MakeObject<BarcodeGenerator>(EncodeTypes::Aztec, System::String(u"1234567890"));
// définir le style broder
tmp_0->get_Parameters()->get_Border()->set_DashStyle(Aspose::BarCode::BorderDashStyle::Solid);
// définir la largeur
tmp_0->get_Parameters()->get_Border()->get_Width()->set_Millimeters(1.0f);
// définir la visibilité des bordures
tmp_0->get_Parameters()->get_Border()->set_Visible(true);
// définir la couleur d'arrière-plan
tmp_0->get_Parameters()->set_BackColor(System::Drawing::Color::get_Black());
// définir la couleur de la barre du code-barres
tmp_0->get_Parameters()->get_Barcode()->set_ForeColor(System::Drawing::Color::get_Orange());
// définir la couleur de la bordure
tmp_0->get_Parameters()->get_Border()->set_Color(System::Drawing::Color::get_Black());
// définir la couleur du texte
tmp_0->get_Parameters()->get_Barcode()->get_CodeTextParameters()->set_Color(System::Drawing::Color::get_Orange());
// définir la résolution de l'image
tmp_0->get_Parameters()->set_Resolution(400);
return tmp_0; }();	
 
barcodeGenerator->Save(System::String(u"custom_barcode.jpg"));

Voici le code-barres aztèque personnalisé que nous avons généré.

Générer des codes-barres avec une légende à l’aide de C++

Les codes-barres peuvent également contenir la légende sous ou au-dessus du code-barres. Vous pouvez définir le texte de la légende ainsi que sa visibilité dans l’image du code-barres. L’exemple de code suivant montre comment générer un code-barres avec les légendes à l’aide de C++.

System::SharedPtr<BarcodeGenerator> generator = [&] { auto tmp_0 = System::MakeObject<BarcodeGenerator>(EncodeTypes::Code39Standard, System::String(u"1234567890"));
// définir la légende ci-dessus
tmp_0->get_Parameters()->get_CaptionAbove()->set_Text(u"Caption Above");
// définir la visibilité
tmp_0->get_Parameters()->get_CaptionAbove()->set_Visible(true);
// définir la légende ci-dessous
tmp_0->get_Parameters()->get_CaptionBelow()->set_Text(u"Caption Below");
// définir la visibilité
tmp_0->get_Parameters()->get_CaptionBelow()->set_Visible(true);
// définir la résolution
tmp_0->get_Parameters()->set_Resolution(300);
return tmp_0; }();
generator->Save(System::String(u"barcode_caption.jpg"));

Ce qui suit est un code à barres avec les légendes ci-dessus et ci-dessous.

Numériser et lire des codes-barres à l’aide de C++

Voyons maintenant comment scanner et lire les codes-barres en utilisant Aspose.BarCode for C++. Voici les étapes pour exécuter cette fonction.

  • Créez une instance de la classe BarCodeReader.
  • Initialisez l’instance BarCodeReader avec le fichier image du code-barres et sa symbologie.
  • Utilisez la méthode BarCodeReader->Read() pour récupérer le texte et le type du code-barres.

L’exemple de code suivant montre comment numériser et lire un code-barres à l’aide de C++.

// Créer une instance de la classe BarcodeGenerator 
System::SharedPtr<BarCodeReader> reader = System::MakeObject<BarCodeReader>(u"Code128.png", DecodeType::Code128);
while (reader->Read())
{
	// Afficher le texte du code et le type de symbologie
	System::Console::WriteLine(System::String(u"CodeText: ") + reader->GetCodeText());
	System::Console::Write(System::String(u"Symbology Type: ") + reader->GetCodeType());
}
reader->Close();

Lire des codes-barres avec plusieurs symbologies à l’aide de C++

La plupart du temps, une image ne contient qu’une seule symbologie de code-barres. Cependant, dans certains cas, l’image peut contenir des codes-barres de plusieurs symbologies en même temps. Dans de tels cas, vous pouvez fournir une liste des symbologies de codes-barres à scanner et à lire.

L’exemple de code suivant montre comment numériser une image comportant plusieurs symbologies de code-barres à l’aide de C++.

// Définir des symbologies de code-barres
System::ArrayPtr<System::SharedPtr<BaseDecodeType>> objArray = System::MakeArray<System::SharedPtr<Aspose::BarCode::BarCodeRecognition::BaseDecodeType>>({ DecodeType::Code39Standard, DecodeType::Pdf417 });

// Initialiser la méthode BarCodeReader, Call Read() dans une boucle et Afficher le texte de code et le type de symbologie
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();

Conclusion

Dans cet article, vous avez appris à générer des codes-barres avec différentes symbologies à l’aide de C++. En outre, la procédure de numérisation et de lecture des codes-barres est également abordée avec des exemples de code C++. Vous pouvez en savoir plus sur l’API à l’aide de la documentation.

Voir également