В этой статье я покажу, как программно генерировать штрих-коды с помощью C++. Вы также узнаете, как внедрить сканер или считыватель штрих-кода в свои приложения на C++.
Штрих-коды используются для визуального представления данных в машиночитаемой форме. Упомянутая технология оказалась полезной, особенно в автоматизированных кассовых системах, развернутых в магазинах и супермаркетах. Почти каждый продукт на рынке в наши дни содержит штрих-код. Эта широкая популярность штрих-кода расширила возможности его использования в различных областях. Принимая во внимание важность штрих-кодов, несколько лет назад Aspose запустил генератор штрих-кодов и API считывателя для различных платформ. Цель этой статьи — продемонстрировать, как реализовать генератор и считыватель штрих-кодов в приложениях C++ для динамического создания и считывания штрих-кодов.
- Генерация штрих-кода с помощью C++
- Создание 2D-штрих-кода (QR или другого) с использованием C++
- Создавайте штрих-коды с индивидуальным внешним видом с помощью C++.
- Создание штрих-кодов с заголовком с помощью C++
- Сканировать и читать штрих-коды с помощью C++
- Чтение нескольких символик штрих-кода с использованием 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, используя документацию.