إنتاج الرمزات الشريطية

إنتاج الرمزات الشريطية

إنتاج الرمزات الشريطية

خط أنابيب توليد الرموز الشريطية في Aspose.BarCode FOSS لـ Python يتبع بنية ثلاثي المراحل: تحليل → ترميز → تقديم.(الـ API الرفيع المستوى)generate() و المساعدين في الرمزية) يقوم بتنظيم هذه المراحل من خلال BarcodeService.


واجهة برمجة التطبيقات لتوليد المستوى العالي

أبسط طريقة لتوليد رمز شريط هي من خلال وظائف المساعدة في الرمزية:

import aspose_barcode_foss as barcode

bc_128 = barcode.code128("ABC123")
bc_qr = barcode.qr("https://example.com")
bc_ean = barcode.ean13("590123412345")
bc_upca = barcode.upca("01234567890")

كل مساعدة تعيد a Barcode أبلغني عن الهدف. to_svg() لخروج SVG أو to_png() لخروج PNG.

المنتج العام generate() تستقبل الدالة سلسلة اسم رمزية:

bc = barcode.generate("code128", "DATA")
svg = bc.to_svg()

أسماء رمزية صالحة: "code128", "code39", "ean13", "ean8", "qr", "upca", "upce".


BarcodeService

BarcodeService ويتنسق بين ثلاث مراحل خط الأنابيب. SymbologyRegistry و OptionsResolver:

from aspose_barcode_foss import BarcodeService

# The default service is used by all helper functions
# You can create a custom service for testing or extension:
service = BarcodeService(registry=registry, options_resolver=resolver)
result = service.generate("code128", "DATA")

المجلس الوزاري generate() الطريقة:

  1. يبحث عن SymbologyDefinition من السجل
  2. يدعو إلى InputParser.parse() لتصديق وتطبيع المدخلات
  3. يدعو إلى SymbologyEncoder.encode() لإنتاج EncodedSymbol
  4. يعود a Barcode لف الرمز ومصفاته.

SymbologyRegistry

SymbologyRegistry مخازن SymbologyDefinition الكائنات المكتوبة باستخدام الأسماء والكلمات المستعارة:

MethodDescription
get_definition(name)استرداد تعريف رمزية كاملة
get_parser(name)أحضروا InputParser للوحات الرمزية
get_encoder(name)أحضروا SymbologyEncoder للوحات الرمزية
get_profile(name)أحضروا SymbologyProfile مع الافتراضات
get_text_policy(name)أحضروا TextLayoutPolicy لترجمة النصوص
register(definition)سجل جديد SymbologyDefinition

EncoderRegistry هو مستعار متوافق للخلف لـ: SymbologyRegistry.


SymbologyDefinition

(أ) SymbologyDefinition يجمع جميع المكونات اللازمة لدعم رمزية واحدة:

PropertyTypeDescription
namestrمعرف رمزية قنونيّة
parserInputParserيثبت بيانات الإدخال ويعادلها
encoderSymbologyEncoderترميز البيانات في مصفوفة الوحدة
profileSymbologyProfileالتطبيقات الافتراضية، والقدرات، وسياسة النصوص
aliasestuple[str, ...]أسماء بديلة للبحث

EncodedSymbol

المجلس الوزاري EncodedSymbol المرجع بواسطة الترميز يحتوي على:

  • matrix a ModuleMatrix مع شبكة وحدات المنطقية للشفرة.
  • metadata a SymbolMetadata مع اسم الرمزية، النص العرضي، وتفاصيل التشفير.
bc = barcode.code128("TEST")
symbol = bc.symbol

print(f"Matrix: {symbol.matrix.width}x{symbol.matrix.height}")
print(f"Display text: {symbol.metadata.display_text}")
print(f"Symbology: {symbol.metadata.symbology}")

ModuleMatrix يوفر: get(x, y) طريقة تعيد قيمة الوحدة في موقع معين.


NormalizedPayload

المجلس الوزاري NormalizedPayload هو التمثيل الوسيطي بين التحليل والترميز:

PropertyDescription
symbologyاسم رمزية قنونيّة
dataبيانات المدخل الموثقة (str أو bytes)
input_kindكيف تم تصنيف المدخلات؟
code128_encode_modeوضع رمز 128 المحل (إن وجدت)
code39_encode_modeوضع الكود 39 المحل (إن وجدت)
qr_error_correction_levelتصحيح خطأ QR (إن وجدت)
qr_versionالنسخة QR المحددة (إن وجدت)
qr_encoding_modeوضع تشفير QR مع حل (إن وجدت)

OptionsResolver

OptionsResolver يجمع خيارات التصوير المقدمة من قبل المستخدم مع التبويبات الرمزية الافتراضية:

MethodDescription
resolve(profile, options)إنتاج ResolvedRenderOptions عن طريق دمج خيارات المستخدم مع التعريفات الافتراضية للملف الشخصي
merge_options(earlier, later)الاندماج الثاني RenderOptions (تجاوز القيم اللاحقة)
coerce_options(options)تطبيع الخيارات الخام إلى RenderOptions

نصائح وأفضل الممارسات

  • استخدم المساعدين في الرمزية (code128(), qr(),، الخ) بدلا من generate() بالنسبة لسلامة النوع يضمنون استخدام الطبقة الصحيحة للخيارات.
  • المجلس الوزاري Barcode.symbol الممتلكات تمنح الوصول المباشر إلى EncodedSymbol لتحليل أو تقديم مخصص.
  • BarcodeService هو بلا حالة يمكن لمثلة واحدة إنشاء رموز شريط عبر عدة خيوط.
  • Catch BarcodeError كطبقة أساسية للتعامل مع جميع الاستثناءات المتعلقة بالرموز الشريطية في كتلة واحدة.

القضايا المشتركة

IssueCauseإصلاح
SymbologyNotFoundErrorالاسم غير مسجل في SymbologyRegistryتحقق من التهجئة واستخدم الأسماء القائمة على القانون.
InvalidInputErrorالبيانات تنتهك متطلبات الرمزيةتحقق من متطلبات مجموعة الأحرف والطول
خروج SVG فارغلا توجد وحدات مشفرةالتحقق من أن البيانات غير فارغة وصالحة بالنسبة للرمزية.

See Also

 العربية