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++.
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.
- Wygeneruj kod kreskowy za pomocą C++
- Wygeneruj kod kreskowy 2D (QR lub inny) za pomocą C++
- Twórz kody kreskowe o dostosowanym wyglądzie za pomocą C++
- Twórz kody kreskowe z podpisem za pomocą C++
- Skanuj i czytaj kody kreskowe za pomocą C++
- Czytaj wiele symboli kodów kreskowych za pomocą C++
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ę.
- Utwórz obiekt klasy Generator kodów kreskowych.
- Zainicjuj obiekt za pomocą typu kodu kreskowego i jego tekstu.
- Wygeneruj kod kreskowy metodą BarcodeGenerator->Save(System::String).
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.
- Utwórz obiekt klasy Generator kodów kreskowych.
- Zainicjuj obiekt typem EncodeTypes::QR i ustaw jego tekst.
- Utwórz obraz kodu kreskowego za pomocą metody Generator kodów kreskowych->Zapisz(System::String).
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++.
- Utwórz i zainicjuj obiekt klasy Generator kodów kreskowych.
- Uzyskaj dostęp do parametrów kodu kreskowego za pomocą metod BarcodeGenerator->getParameters().
- Ustaw żądane parametry.
- Wygeneruj kod kreskowy i zapisz go jako obraz.
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.