في هذه المقالة ، سأوضح كيفية إنشاء رموز شريطية برمجيًا باستخدام C++. سوف تتعلم أيضًا كيفية تنفيذ ماسح أو قارئ الباركود داخل تطبيقات C++.
تُستخدم الرموز الشريطية لتمثيل البيانات بصريًا في النموذج المقروء آليًا. لقد أثبتت التكنولوجيا المذكورة فائدتها خاصة في أنظمة الدفع الآلي المنتشرة في المتاجر ومحلات السوبر ماركت. يحتوي كل منتج في السوق هذه الأيام تقريبًا على رمز شريطي عليه. أدت هذه الشعبية الواسعة للباركود إلى توسيع حالات استخدامه في مجالات مختلفة. بمراقبة أهمية الباركود ، منذ بضع سنوات ، أطلقت Aspose أداة إنشاء الرموز الشريطية وواجهة برمجة التطبيقات للقارئ لمنصات مختلفة. تهدف هذه المقالة إلى عرض كيفية تنفيذ مُنشئ الباركود والقارئ داخل تطبيقات C++ لإنشاء الرموز الشريطية وقراءتها ديناميكيًا.
- قم بإنشاء رمز شريطي باستخدام C++
- قم بإنشاء رمز شريطي ثنائي الأبعاد (QR أو غير ذلك) باستخدام C++
- قم بإنشاء رموز شريطية بمظهر مخصص باستخدام C++
- قم بإنشاء رموز شريطية مع تسمية توضيحية باستخدام C++
- مسح وقراءة الرموز الشريطية باستخدام C++
- قراءة رموز الباركود المتعددة باستخدام C++
C++ Barcode Generator and Reader API
Aspose.BarCode for C++ عبارة عن واجهة برمجة تطبيقات C++ غنية بالميزات لتوليد وقراءة العديد من الرموز الشريطية 1D و 2D. يتيح لك إنشاء الرموز الشريطية وتخصيصها وتصديرها إلى صور عالية الجودة. يمكنك تنزيل ملفات المكتبة من قسم التنزيلات. تحتوي الحزمة القابلة للتنزيل أيضًا على تطبيق تجريبي C++ لك.
فيما يلي قائمة رموز الباركود التي يمكنك إنشاؤها باستخدام Aspose.BarCode لـ C++:
- كود 128
- كود 39 قياسي
- كود 39 موسع
- كود 93 قياسي
- كود 93 موسع
- الكود 11
- كودابار
- BooklandEAN
- EAN13
- EAN8
- EAN128
- معشق 2of5
- قياسي 2of5
- MSI
- Postnet
- كوكب
- UPCA
- أوبسي
- EAN14 (SCC14)
- SSCC18
- ITF14
- ملحق الباركود
- Pdf417
- ريال قطري
- مصفوفة البيانات
- مصفوفة 2 من 5
- PZN (فارما زنترال نومر ، الباركود فارمازينترالنمر)
- دويتشه بوست كود التعريف
- ازتيك
- أستراليا بوست
قم بإنشاء رمز شريطي باستخدام 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);
ما يلي هو الرمز الشريطي الذي أنشأناه باستخدام الكود أعلاه.
قم بإنشاء رمز شريطي ثنائي الأبعاد (QR أو غير ذلك) باستخدام C++
في المثال السابق ، قمنا بإنشاء رمز شريطي أحادي البعد. يتيح الآن إنشاء رمز شريطي ثنائي الأبعاد مثل رمز الاستجابة السريعة. فيما يلي خطوات إنشاء رمز شريطي 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);
سيتم إنشاء رمز الاستجابة السريعة التالي باستخدام الرمز أعلاه.
قم بإنشاء رموز شريطية مخصصة باستخدام C++
يمكنك أيضًا تخصيص مظهر الرمز الشريطي. على سبيل المثال ، يمكنك تعيين لون المقدمة ، ولون الخلفية ، والحجم ، ونمط الحدود وما إلى ذلك. تناولت الخطوات التالية لتخصيص الرموز الشريطية باستخدام Aspose.BarCode لـ C++.
- إنشاء وتهيئة كائن من فئة BarcodeGenerator.
- قم بالوصول إلى معلمات الباركود باستخدام طرق BarcodeGenerator-> getParameters().
- اضبط المعلمات المطلوبة.
- قم بإنشاء الرمز الشريطي وحفظه كصورة.
يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء رمز شريطي مخصص باستخدام C++.
System::SharedPtr<BarcodeGenerator> barcodeGenerator = [&] { auto tmp_0 = System::MakeObject<BarcodeGenerator>(EncodeTypes::Aztec, System::String(u"1234567890"));
// ضبط أسلوب broder
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 و 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 باستخدام التوثيق.