В этой статье я покажу, как программно генерировать штрих-коды с помощью C++. Вы также узнаете, как внедрить сканер или считыватель штрих-кода в свои приложения на C++.

генерировать штрих-код на С++

Штрих-коды используются для визуального представления данных в машиночитаемой форме. Упомянутая технология оказалась полезной, особенно в автоматизированных кассовых системах, развернутых в магазинах и супермаркетах. Почти каждый продукт на рынке в наши дни содержит штрих-код. Эта широкая популярность штрих-кода расширила возможности его использования в различных областях. Принимая во внимание важность штрих-кодов, несколько лет назад Aspose запустил генератор штрих-кодов и API считывателя для различных платформ. Цель этой статьи — продемонстрировать, как реализовать генератор и считыватель штрих-кодов в приложениях C++ для динамического создания и считывания штрих-кодов.

Генератор штрих-кода C++ и API для чтения

Aspose.BarCode for C++ — это многофункциональный C++ API для создания и считывания множества одномерных и двумерных штрих-кодов. Он позволяет создавать, настраивать и экспортировать штрих-коды в высококачественные изображения. Вы можете скачать файлы библиотеки из раздела Загрузки. Загружаемый пакет также содержит демонстрационное приложение C++.

Ниже приведен список символик штрих-кода, которые вы можете создать с помощью Aspose.BarCode for C++:

  • Код128
  • Стандарт Code39
  • Код39 Расширенный
  • Стандарт Code93
  • Code93 Расширенный
  • Код11
  • Кодабар
  • BooklandEAN
  • EAN13
  • EAN8
  • EAN128
  • Interleaved2of5
  • Стандарт2из5
  • MSI
  • Постнет
  • планета
  • УПЦА
  • UPCE
  • EAN14(SCC14)
  • SSCC18
  • ITF14
  • Дополнение к штрих-коду
  • PDF417
  • QR-код
  • Матрица данных
  • Матрица 2 из 5
  • PZN (Pharma Zentral Number, штрих-код Pharmazentralnummer)
  • Идентификационный код немецкой почты
  • ацтек
  • Почта Австралии

Генерация штрих-кода с помощью C++

Сгенерировать штрих-код с помощью Aspose.BarCode можно всего за пару строк кода. Ниже приведены шаги для выполнения этой операции.

  • Создайте объект класса BarcodeGenerator.
  • Инициализируйте объект с типом кодирования штрих-кода и его текстом.
  • Сгенерируйте штрих-код, используя метод BarcodeGenerator->Save(System::String).

В следующем примере кода показано, как создать штрих-код с помощью C++.

const System::String codeText = u"1234567";
const System::String fileName = u"code39_barcode.jpg";
// Создать генератор штрих-кода
System::SharedPtr<BarcodeGenerator> barcodeGenerator = System::MakeObject<BarcodeGenerator>(EncodeTypes::Code39Standard, codeText);
barcodeGenerator->get_Parameters()->set_Resolution(300);
// Сгенерировать штрих-код и сохранить как изображение
barcodeGenerator->Save(fileName);

Ниже приведен штрих-код, который мы сгенерировали, используя приведенный выше код.

Создание 2D-штрих-кода (QR или другого) с использованием C++

В предыдущем примере мы создали одномерный штрих-код. Давайте теперь создадим двумерный штрих-код, такой как QR-код. Ниже приведены шаги для создания штрих-кода QR.

  • Создайте объект класса BarcodeGenerator.
  • Инициализируйте объект с типом EncodeTypes::QR и задайте его текст.
  • Создайте изображение штрих-кода с помощью метода BarcodeGenerator->Save(System::String).

В следующем примере кода показано, как создать штрих-код QR с помощью C++.

const System::String codeText = u"1234567";
const System::String fileName = u"QR_Code.jpg";
// Создать генератор штрих-кода
System::SharedPtr<BarcodeGenerator> barcodeGenerator = System::MakeObject<BarcodeGenerator>(EncodeTypes::QR, codeText);
barcodeGenerator->get_Parameters()->set_Resolution(300);
// Сгенерировать штрих-код и сохранить как изображение
barcodeGenerator->Save(fileName);

Следующий QR-код будет сгенерирован с использованием приведенного выше кода.

Создание настраиваемых штрих-кодов с использованием C++

Вы также можете настроить внешний вид штрих-кода. Например, вы можете установить цвет переднего плана, цвет фона, размер, стиль границы и т. д. Ниже приведены шаги по настройке штрих-кодов с помощью Aspose.BarCode для C++.

  • Создайте и инициализируйте объект класса BarcodeGenerator.
  • Получите доступ к параметрам штрих-кода, используя методы BarcodeGenerator->getParameters().
  • Установите нужные параметры.
  • Создайте штрих-код и сохраните его как изображение.

В следующем примере кода показано, как создать настраиваемый штрих-код с помощью C++.

System::SharedPtr<BarcodeGenerator> barcodeGenerator = [&] { auto tmp_0 = System::MakeObject<BarcodeGenerator>(EncodeTypes::Aztec, System::String(u"1234567890"));
// установить стиль бродера
tmp_0->get_Parameters()->get_Border()->set_DashStyle(Aspose::BarCode::BorderDashStyle::Solid);
// установить ширину
tmp_0->get_Parameters()->get_Border()->get_Width()->set_Millimeters(1.0f);
// установить видимость границ
tmp_0->get_Parameters()->get_Border()->set_Visible(true);
// установить цвет фона
tmp_0->get_Parameters()->set_BackColor(System::Drawing::Color::get_Black());
// установить цвет полосы штрих-кода
tmp_0->get_Parameters()->get_Barcode()->set_ForeColor(System::Drawing::Color::get_Orange());
// установить цвет границы
tmp_0->get_Parameters()->get_Border()->set_Color(System::Drawing::Color::get_Black());
// установить цвет текста
tmp_0->get_Parameters()->get_Barcode()->get_CodeTextParameters()->set_Color(System::Drawing::Color::get_Orange());
// установить разрешение изображения
tmp_0->get_Parameters()->set_Resolution(400);
return tmp_0; }();	
 
barcodeGenerator->Save(System::String(u"custom_barcode.jpg"));

Ниже приведен созданный нами индивидуальный штрих-код Aztec.

Создание штрих-кодов с заголовком с помощью C++

Штрих-коды также могут содержать заголовок под или над штрих-кодом. Вы можете установить текст заголовка, а также его видимость на изображении штрих-кода. В следующем примере кода показано, как создать штрих-код с подписями с помощью C++.

System::SharedPtr<BarcodeGenerator> generator = [&] { auto tmp_0 = System::MakeObject<BarcodeGenerator>(EncodeTypes::Code39Standard, System::String(u"1234567890"));
// установить заголовок выше
tmp_0->get_Parameters()->get_CaptionAbove()->set_Text(u"Caption Above");
// установить видимость
tmp_0->get_Parameters()->get_CaptionAbove()->set_Visible(true);
// установить подпись ниже
tmp_0->get_Parameters()->get_CaptionBelow()->set_Text(u"Caption Below");
// установить видимость
tmp_0->get_Parameters()->get_CaptionBelow()->set_Visible(true);
// установить разрешение
tmp_0->get_Parameters()->set_Resolution(300);
return tmp_0; }();
generator->Save(System::String(u"barcode_caption.jpg"));

Ниже приведен штрих-код с заголовками выше и ниже.

Сканировать и читать штрих-коды с помощью C++

Давайте теперь посмотрим, как сканировать и читать штрих-коды с помощью Aspose.BarCode для C++. Ниже приведены шаги для выполнения этой функции.

  • Создайте экземпляр класса BarCodeReader.
  • Инициализируйте экземпляр BarCodeReader с файлом изображения штрих-кода и его символикой.
  • Используйте метод BarCodeReader->Read(), чтобы получить текст и тип штрих-кода.

В следующем примере кода показано, как сканировать и считывать штрих-код с помощью C++.

// Создать экземпляр класса BarcodeGenerator 
System::SharedPtr<BarCodeReader> reader = System::MakeObject<BarCodeReader>(u"Code128.png", DecodeType::Code128);
while (reader->Read())
{
	// Отображение текста кода и типа символов
	System::Console::WriteLine(System::String(u"CodeText: ") + reader->GetCodeText());
	System::Console::Write(System::String(u"Symbology Type: ") + reader->GetCodeType());
}
reader->Close();

Чтение штрих-кодов с несколькими символами с использованием C++

В большинстве случаев изображение содержит только одну символику штрих-кода. Однако в некоторых случаях изображение может содержать штрих-коды нескольких символик одновременно. В таких случаях вы можете предоставить список символов штрих-кода, которые необходимо отсканировать и прочитать.

В следующем примере кода показано, как сканировать изображение с несколькими символами штрих-кода с помощью C++.

// Установить символы штрих-кода
System::ArrayPtr<System::SharedPtr<BaseDecodeType>> objArray = System::MakeArray<System::SharedPtr<Aspose::BarCode::BarCodeRecognition::BaseDecodeType>>({ DecodeType::Code39Standard, DecodeType::Pdf417 });

// Инициализировать BarCodeReader, вызвать метод Read() в цикле и отобразить кодовый текст и тип символов.
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();

Вывод

В этой статье вы узнали, как создавать штрих-коды с различными символами с помощью C++. Кроме того, процедура сканирования и считывания штрих-кодов также обсуждается вместе с примерами кода C++. Вы можете узнать больше об API, используя документацию.

Смотрите также