I den här artikeln kommer jag att visa hur man genererar streckkoder programmatiskt med C++. Du kommer också att lära dig hur du implementerar en streckkodsläsare eller läsare i dina C++-applikationer.

generera streckkod i C++

Streckkoder används för att visuellt representera data i maskinläsbar form. Den nämnda tekniken har visat sig vara användbar särskilt i de automatiserade kassasystemen som används i butiker och stormarknader. Nästan varje produkt på marknaden nuförtiden innehåller en streckkod. Denna utbredda popularitet för streckkoden har utökat dess användningsfall inom olika domäner. För att hålla ett öga på streckkodernas betydelse har Aspose för några år sedan lanserat streckkodsgenerator och läsar-API för olika plattformar. Den här artikeln syftar till att visa upp hur man implementerar streckkodsgeneratorn och läsaren i C++-applikationerna för att dynamiskt generera och läsa streckkoder.

C++ streckkodsgenerator och Reader API

Aspose.BarCode for C++ är ett funktionsrikt C++ API för att generera och läsa en mängd 1D- och 2D-streckkoder. Det låter dig generera, anpassa och exportera streckkoderna till bilder av hög kvalitet. Du kan ladda ner biblioteksfilerna från avsnittet Nedladdningar. Det nedladdningsbara paketet innehåller också en demo C++-applikation för dig.

Följande är listan över streckkodssymboler som du kan generera med Aspose.BarCode för C++:

  • Kod128
  • Code39 Standard
  • Kod39 Utökad
  • Code93 Standard
  • Kod93 Utökad
  • Kod11
  • Codabar
  • BooklandEAN
  • EAN13
  • EAN8
  • EAN128
  • Interleaved2of5
  • Standard2av5
  • MSI
  • Postnet
  • Planet
  • UPCA
  • UPCE
  • EAN14(SCC14)
  • SSCC18
  • ITF14
  • Streckkodstillägg
  • Pdf417
  • QR
  • Datamatris
  • Matris 2 av 5
  • PZN (Pharma Zentral Nummer, Pharmazentralnummer streckkod)
  • Deutsche postnummer
  • Aztec
  • Australia Post

Skapa en streckkod med C++

Att generera en streckkod med Aspose.BarCode kan uppnås inom ett par rader kod. Följande är stegen för att utföra denna operation.

Följande kodexempel visar hur man genererar en streckkod med C++.

const System::String codeText = u"1234567";
const System::String fileName = u"code39_barcode.jpg";
// Skapa streckkodsgenerator
System::SharedPtr<BarcodeGenerator> barcodeGenerator = System::MakeObject<BarcodeGenerator>(EncodeTypes::Code39Standard, codeText);
barcodeGenerator->get_Parameters()->set_Resolution(300);
// Skapa streckkod och spara som bild
barcodeGenerator->Save(fileName);

Följande är streckkoden som vi har genererat med koden ovan.

Generera 2D streckkod (QR eller annat) med C++

I föregående exempel har vi skapat en endimensionell streckkod. Låt oss nu skapa en tvådimensionell streckkod som QR-kod. Följande är stegen för att skapa en QR-streckkod.

Följande kodexempel visar hur man genererar en QR-streckkod med C++.

const System::String codeText = u"1234567";
const System::String fileName = u"QR_Code.jpg";
// Skapa streckkodsgenerator
System::SharedPtr<BarcodeGenerator> barcodeGenerator = System::MakeObject<BarcodeGenerator>(EncodeTypes::QR, codeText);
barcodeGenerator->get_Parameters()->set_Resolution(300);
// Skapa streckkod och spara som bild
barcodeGenerator->Save(fileName);

Följande QR-kod kommer att genereras med hjälp av ovanstående kod.

Generera anpassade streckkoder med C++

Du kan också anpassa streckkodens utseende. Till exempel kan du ställa in förgrundsfärg, bakgrundsfärg, storlek, kantstil och etc. Följande åt stegen för att anpassa streckkoderna med Aspose.BarCode för C++.

Följande kodexempel visar hur man genererar en anpassad streckkod med C++.

System::SharedPtr<BarcodeGenerator> barcodeGenerator = [&] { auto tmp_0 = System::MakeObject<BarcodeGenerator>(EncodeTypes::Aztec, System::String(u"1234567890"));
// sätta bredare stil
tmp_0->get_Parameters()->get_Border()->set_DashStyle(Aspose::BarCode::BorderDashStyle::Solid);
// ställ in bredd
tmp_0->get_Parameters()->get_Border()->get_Width()->set_Millimeters(1.0f);
// ange gränssynlighet
tmp_0->get_Parameters()->get_Border()->set_Visible(true);
// ställ in bakgrundsfärg
tmp_0->get_Parameters()->set_BackColor(System::Drawing::Color::get_Black());
// ställ in streckkodens streckfärg
tmp_0->get_Parameters()->get_Barcode()->set_ForeColor(System::Drawing::Color::get_Orange());
// ange kantfärg
tmp_0->get_Parameters()->get_Border()->set_Color(System::Drawing::Color::get_Black());
// ställ in textfärg
tmp_0->get_Parameters()->get_Barcode()->get_CodeTextParameters()->set_Color(System::Drawing::Color::get_Orange());
// ställ in bildupplösning
tmp_0->get_Parameters()->set_Resolution(400);
return tmp_0; }();	
 
barcodeGenerator->Save(System::String(u"custom_barcode.jpg"));

Följande är den anpassade aztekiska streckkoden som vi har genererat.

Generera streckkoder med en bildtext med C++

Streckkoder kan också innehålla bildtexten under eller ovanför streckkoden. Du kan ställa in bildtextens text såväl som dess synlighet i streckkodsbilden. Följande kodexempel visar hur man genererar en streckkod med bildtexterna med C++.

System::SharedPtr<BarcodeGenerator> generator = [&] { auto tmp_0 = System::MakeObject<BarcodeGenerator>(EncodeTypes::Code39Standard, System::String(u"1234567890"));
// ange bildtext ovan
tmp_0->get_Parameters()->get_CaptionAbove()->set_Text(u"Caption Above");
// ställ in synlighet
tmp_0->get_Parameters()->get_CaptionAbove()->set_Visible(true);
// ange bildtext nedan
tmp_0->get_Parameters()->get_CaptionBelow()->set_Text(u"Caption Below");
// ställ in synlighet
tmp_0->get_Parameters()->get_CaptionBelow()->set_Visible(true);
// ställ in upplösning
tmp_0->get_Parameters()->set_Resolution(300);
return tmp_0; }();
generator->Save(System::String(u"barcode_caption.jpg"));

Följande är en streckkod med texterna ovan och nedan.

Skanna och läs streckkoder med C++

Låt oss nu se hur man skannar och läser streckkoderna med Aspose.BarCode för C++. Följande är stegen för att utföra denna funktion.

  • Skapa en instans av klassen BarCodeReader.
  • Initiera BarCodeReader-instansen med streckkodens bildfil och dess symbolik.
  • Använd metoden BarCodeReader->Read() för att hämta texten och typen av streckkoden.

Följande kodexempel visar hur man skannar och läser en streckkod med C++.

// Skapa instans av klassen BarcodeGenerator 
System::SharedPtr<BarCodeReader> reader = System::MakeObject<BarCodeReader>(u"Code128.png", DecodeType::Code128);
while (reader->Read())
{
	// Visa kodtext och symboltyp
	System::Console::WriteLine(System::String(u"CodeText: ") + reader->GetCodeText());
	System::Console::Write(System::String(u"Symbology Type: ") + reader->GetCodeType());
}
reader->Close();

Läs streckkoder med flera symboler med C++

För det mesta innehåller en bild bara en enda streckkodssymbologi. Men i vissa fall kan bilden innehålla streckkoder med flera symboler samtidigt. I sådana fall kan du tillhandahålla en lista över streckkodssymboler som ska skannas och läsas.

Följande kodexempel visar hur man skannar en bild med flera streckkodssymboler med C++.

// Ställ in streckkodssymboler
System::ArrayPtr<System::SharedPtr<BaseDecodeType>> objArray = System::MakeArray<System::SharedPtr<Aspose::BarCode::BarCodeRecognition::BaseDecodeType>>({ DecodeType::Code39Standard, DecodeType::Pdf417 });

// Initiera BarCodeReader, Call Read()-metoden i en loop och visa kodtext och symboltyp
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();

Slutsats

I den här artikeln har du lärt dig hur du genererar streckkoder med olika symboler med C++. Dessutom diskuteras proceduren för att skanna och läsa streckkoder tillsammans med C++-kodprover. Du kan utforska mer om API:t med hjälp av dokumentationen.

Se även