در این مقاله، نحوه تولید بارکد به صورت برنامه‌نویسی با استفاده از C++ را نشان خواهم داد. همچنین یاد خواهید گرفت که چگونه یک اسکنر یا خواننده بارکد را در برنامه های C++ خود پیاده سازی کنید.

تولید بارکد در C++

بارکدها برای نمایش بصری داده ها به شکل قابل خواندن توسط ماشین استفاده می شوند. این فناوری به ویژه در سیستم های پرداخت خودکار مستقر در فروشگاه ها و سوپرمارکت ها مفید است. تقریباً هر محصولی که این روزها در بازار وجود دارد دارای یک بارکد است. این محبوبیت گسترده بارکد موارد استفاده آن را در حوزه های مختلف گسترش داده است. با توجه به اهمیت بارکدها، چند سال پیش، Aspose API تولید کننده و خواننده بارکد را برای پلتفرم های مختلف راه اندازی کرده است. هدف این مقاله نشان دادن نحوه پیاده‌سازی بارکد مولد و خواننده در برنامه‌های ++C برای تولید و خواندن بارکد است.

C++ بارکد Generator and Reader API

Aspose.BarCode for C++ یک API C++ غنی از ویژگی ها برای تولید و خواندن تعداد زیادی از بارکدهای یک بعدی و دو بعدی است. این به شما امکان می دهد بارکدها را تولید، سفارشی کنید و به تصاویر با کیفیت بالا صادر کنید. می‌توانید فایل‌های کتابخانه را از بخش دانلودها دانلود کنید. بسته قابل دانلود همچنین شامل یک برنامه آزمایشی ++C برای شما می باشد.

در زیر لیستی از نمادهای بارکد وجود دارد که می توانید با استفاده از Aspose.BarCode برای C++ ایجاد کنید:

  • کد 128
  • استاندارد کد 39
  • کد39 تمدید شد
  • استاندارد کد 93
  • کد93 تمدید شد
  • کد 11
  • کودابار
  • BooklandEAN
  • EAN13
  • EAN8
  • EAN128
  • Interleaved2of5
  • Standard2of5
  • MSI
  • پست نت
  • سیاره
  • UPCA
  • UPCE
  • EAN14 (SCC14)
  • SSCC18
  • ITF14
  • مکمل بارکد
  • پی دی اف 417
  • QR
  • Datamatrix
  • ماتریس 2 از 5
  • PZN (Pharma Zentral Nummer، بارکد Pharmazentralnummer)
  • کد شناسایی پست دویچه
  • آزتک
  • پست استرالیا

با استفاده از C++ یک بارکد ایجاد کنید

تولید بارکد با استفاده از Aspose.BarCode می تواند در چند خط کد به دست آید. مراحل زیر برای انجام این عملیات آورده شده است.

نمونه کد زیر نحوه تولید بارکد با استفاده از 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);

زیر بارکدی است که ما با استفاده از کد بالا ایجاد کرده ایم.

بارکد دو بعدی (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++ ایجاد کنید

همچنین می توانید ظاهر بارکد را سفارشی کنید. برای مثال، می‌توانید رنگ پیش‌زمینه، رنگ پس‌زمینه، اندازه، سبک حاشیه و غیره را تنظیم کنید.

  • شیء کلاس 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"));

زیر بارکد سفارشی آزتک است که ما ایجاد کرده ایم.

با استفاده از 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، Call 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 بیشتر کاوش کنید.

همچنین ببینید