W tym artykule pokażę, jak programowo generować kody kreskowe przy użyciu C++. Dowiesz się również, jak zaimplementować skaner lub czytnik kodów kreskowych w swoich aplikacjach C++.

wygenerować kod kreskowy w C++

Kody kreskowe służą do wizualnego przedstawienia danych w formie czytelnej maszynowo. Technologia ta okazała się przydatna zwłaszcza w zautomatyzowanych systemach kasowych w sklepach i supermarketach. Prawie każdy produkt na rynku zawiera obecnie kod kreskowy. Ta powszechna popularność kodu kreskowego rozszerzyła przypadki jego użycia w różnych dziedzinach. Mając oko na znaczenie kodów kreskowych, kilka lat temu Aspose uruchomił generator kodów kreskowych i interfejs API czytnika dla różnych platform. Ten artykuł ma na celu pokazanie, jak zaimplementować generator i czytnik kodów kreskowych w aplikacjach C++, aby dynamicznie generować i odczytywać kody kreskowe.

Generator kodów kreskowych C++ i interfejs API czytnika

Aspose.BarCode for C++ to bogate w funkcje API C++ do generowania i odczytywania wielu kodów kreskowych 1D i 2D. Pozwala generować, dostosowywać i eksportować kody kreskowe do obrazów o wysokiej jakości. Pliki biblioteki można pobrać z sekcji Downloads. Pakiet do pobrania zawiera również wersję demonstracyjną aplikacji C++.

Poniżej znajduje się lista symboli kodów kreskowych, które można wygenerować za pomocą Aspose.BarCode for C++:

  • Kod128
  • Standard Code39
  • Kod39 rozszerzony
  • Standard Code93
  • Code93 rozszerzony
  • Kod11
  • Codabar
  • BooklandEAN
  • EAN13
  • EAN8
  • EAN128
  • Przeplatane 2 z 5
  • Standardowe 2 z 5
  • MSI
  • Postnet
  • Planeta
  • UPCA
  • UPCE
  • EAN14(SCC14)
  • SSCC18
  • ITF14
  • Dodatek do kodu kreskowego
  • PDF417
  • QR
  • Datamatrix
  • Macierz 2 z 5
  • PZN (Pharma Zentral Nummer, kod kreskowy Pharmazentralnummer)
  • Kod identyfikacyjny Deutsche Post
  • Aztek
  • Poczta australijska

Wygeneruj kod kreskowy za pomocą C++

Generowanie kodu kreskowego za pomocą Aspose.BarCode można osiągnąć w ciągu kilku linii kodu. Poniżej przedstawiono kroki, aby wykonać tę operację.

Poniższy przykładowy kod pokazuje, jak wygenerować kod kreskowy przy użyciu języka C++.

const System::String codeText = u"1234567";
const System::String fileName = u"code39_barcode.jpg";
// Utwórz generator kodów kreskowych
System::SharedPtr<BarcodeGenerator> barcodeGenerator = System::MakeObject<BarcodeGenerator>(EncodeTypes::Code39Standard, codeText);
barcodeGenerator->get_Parameters()->set_Resolution(300);
// Wygeneruj kod kreskowy i zapisz jako obraz
barcodeGenerator->Save(fileName);

Poniżej znajduje się kod kreskowy, który wygenerowaliśmy przy użyciu powyższego kodu.

Wygeneruj kod kreskowy 2D (QR lub inny) za pomocą C++

W poprzednim przykładzie stworzyliśmy jednowymiarowy kod kreskowy. Utwórzmy teraz dwuwymiarowy kod kreskowy, taki jak kod QR. Poniżej przedstawiono kroki tworzenia kodu kreskowego QR.

Poniższy przykładowy kod pokazuje, jak wygenerować kod kreskowy QR przy użyciu języka C++.

const System::String codeText = u"1234567";
const System::String fileName = u"QR_Code.jpg";
// Utwórz generator kodów kreskowych
System::SharedPtr<BarcodeGenerator> barcodeGenerator = System::MakeObject<BarcodeGenerator>(EncodeTypes::QR, codeText);
barcodeGenerator->get_Parameters()->set_Resolution(300);
// Wygeneruj kod kreskowy i zapisz jako obraz
barcodeGenerator->Save(fileName);

Poniższy kod QR zostanie wygenerowany przy użyciu powyższego kodu.

Generuj niestandardowe kody kreskowe za pomocą C++

Możesz także dostosować wygląd kodu kreskowego. Na przykład możesz ustawić kolor pierwszego planu, kolor tła, rozmiar, styl obramowania itp. Poniżej przedstawiono kroki dostosowywania kodów kreskowych za pomocą Aspose.BarCode for C++.

Poniższy przykładowy kod pokazuje, jak wygenerować dostosowany kod kreskowy przy użyciu języka C++.

System::SharedPtr<BarcodeGenerator> barcodeGenerator = [&] { auto tmp_0 = System::MakeObject<BarcodeGenerator>(EncodeTypes::Aztec, System::String(u"1234567890"));
// ustaw styl brodera
tmp_0->get_Parameters()->get_Border()->set_DashStyle(Aspose::BarCode::BorderDashStyle::Solid);
// Ustaw szerokość
tmp_0->get_Parameters()->get_Border()->get_Width()->set_Millimeters(1.0f);
// ustawić widoczność granicy
tmp_0->get_Parameters()->get_Border()->set_Visible(true);
// ustaw kolor tła
tmp_0->get_Parameters()->set_BackColor(System::Drawing::Color::get_Black());
// ustaw kolor paska kodu kreskowego
tmp_0->get_Parameters()->get_Barcode()->set_ForeColor(System::Drawing::Color::get_Orange());
// ustaw kolor obramowania
tmp_0->get_Parameters()->get_Border()->set_Color(System::Drawing::Color::get_Black());
// ustaw kolor tekstu
tmp_0->get_Parameters()->get_Barcode()->get_CodeTextParameters()->set_Color(System::Drawing::Color::get_Orange());
// ustawić rozdzielczość obrazu
tmp_0->get_Parameters()->set_Resolution(400);
return tmp_0; }();	
 
barcodeGenerator->Save(System::String(u"custom_barcode.jpg"));

Poniżej znajduje się dostosowany kod kreskowy Aztec, który wygenerowaliśmy.

Generuj kody kreskowe z podpisem za pomocą C++

Kody kreskowe mogą również zawierać podpis pod lub nad kodem kreskowym. Możesz ustawić tekst napisu oraz jego widoczność na obrazie kodu kreskowego. Poniższy przykład kodu pokazuje, jak wygenerować kod kreskowy z podpisami przy użyciu języka C++.

System::SharedPtr<BarcodeGenerator> generator = [&] { auto tmp_0 = System::MakeObject<BarcodeGenerator>(EncodeTypes::Code39Standard, System::String(u"1234567890"));
// ustaw napis powyżej
tmp_0->get_Parameters()->get_CaptionAbove()->set_Text(u"Caption Above");
// ustawić widoczność
tmp_0->get_Parameters()->get_CaptionAbove()->set_Visible(true);
// ustaw napis poniżej
tmp_0->get_Parameters()->get_CaptionBelow()->set_Text(u"Caption Below");
// ustawić widoczność
tmp_0->get_Parameters()->get_CaptionBelow()->set_Visible(true);
// ustaw rozdzielczość
tmp_0->get_Parameters()->set_Resolution(300);
return tmp_0; }();
generator->Save(System::String(u"barcode_caption.jpg"));

Poniżej znajduje się kod kreskowy z powyższymi i poniższymi napisami.

Skanuj i czytaj kody kreskowe za pomocą C++

Zobaczmy teraz, jak skanować i odczytywać kody kreskowe przy użyciu Aspose.BarCode for C++. Poniżej przedstawiono kroki, aby wykonać tę funkcję.

  • Utwórz instancję klasy BarCodeReader.
  • Zainicjuj instancję BarCodeReader z plikiem obrazu kodu kreskowego i jego symboliką.
  • Użyj metody BarCodeReader->Read(), aby pobrać tekst i typ kodu kreskowego.

Poniższy przykładowy kod pokazuje, jak skanować i odczytywać kod kreskowy przy użyciu języka C++.

// Utwórz instancję klasy BarcodeGenerator 
System::SharedPtr<BarCodeReader> reader = System::MakeObject<BarCodeReader>(u"Code128.png", DecodeType::Code128);
while (reader->Read())
{
	// Wyświetl tekst kodu i typ symboliki
	System::Console::WriteLine(System::String(u"CodeText: ") + reader->GetCodeText());
	System::Console::Write(System::String(u"Symbology Type: ") + reader->GetCodeType());
}
reader->Close();

Czytaj kody kreskowe z wieloma symbolami za pomocą C++

W większości przypadków obraz zawiera tylko jedną symbolikę kodu kreskowego. Jednak w niektórych przypadkach obraz może zawierać jednocześnie kody kreskowe wielu symboli. W takich przypadkach możesz podać listę symboli kodów kreskowych do zeskanowania i odczytania.

Poniższy przykładowy kod pokazuje, jak skanować obraz z wieloma symbolami kodów kreskowych przy użyciu języka C++.

// Ustaw symbolikę kodu kreskowego
System::ArrayPtr<System::SharedPtr<BaseDecodeType>> objArray = System::MakeArray<System::SharedPtr<Aspose::BarCode::BarCodeRecognition::BaseDecodeType>>({ DecodeType::Code39Standard, DecodeType::Pdf417 });

// Zainicjuj metodę BarCodeReader, wywołaj metodę Read() w pętli i wyświetl tekst kodowy i typ symboliki
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();

Wniosek

W tym artykule nauczyłeś się generować kody kreskowe z różnymi symbolami przy użyciu C++. Dodatkowo omówiono procedurę skanowania i odczytu kodów kreskowych wraz z przykładami kodu C++. Możesz dowiedzieć się więcej o interfejsie API, korzystając z dokumentacji.

Zobacz też