إنتاج الرمزات الشريطية
إنتاج الرمزات الشريطية
خط أنابيب توليد الرموز الشريطية في 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() الطريقة:
- يبحث عن
SymbologyDefinitionمن السجل - يدعو إلى
InputParser.parse()لتصديق وتطبيع المدخلات - يدعو إلى
SymbologyEncoder.encode()لإنتاجEncodedSymbol - يعود a
Barcodeلف الرمز ومصفاته.
SymbologyRegistry
SymbologyRegistry مخازن SymbologyDefinition الكائنات المكتوبة باستخدام الأسماء والكلمات المستعارة:
| Method | Description |
|---|---|
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 يجمع جميع المكونات اللازمة لدعم رمزية واحدة:
| Property | Type | Description |
|---|---|---|
name | str | معرف رمزية قنونيّة |
parser | InputParser | يثبت بيانات الإدخال ويعادلها |
encoder | SymbologyEncoder | ترميز البيانات في مصفوفة الوحدة |
profile | SymbologyProfile | التطبيقات الافتراضية، والقدرات، وسياسة النصوص |
aliases | tuple[str, ...] | أسماء بديلة للبحث |
EncodedSymbol
المجلس الوزاري EncodedSymbol المرجع بواسطة الترميز يحتوي على:
matrixaModuleMatrixمع شبكة وحدات المنطقية للشفرة.metadataaSymbolMetadataمع اسم الرمزية، النص العرضي، وتفاصيل التشفير.
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 هو التمثيل الوسيطي بين التحليل والترميز:
| Property | Description |
|---|---|
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 يجمع خيارات التصوير المقدمة من قبل المستخدم مع التبويبات الرمزية الافتراضية:
| Method | Description |
|---|---|
resolve(profile, options) | إنتاج ResolvedRenderOptions عن طريق دمج خيارات المستخدم مع التعريفات الافتراضية للملف الشخصي |
merge_options(earlier, later) | الاندماج الثاني RenderOptions (تجاوز القيم اللاحقة) |
coerce_options(options) | تطبيع الخيارات الخام إلى RenderOptions |
نصائح وأفضل الممارسات
- استخدم المساعدين في الرمزية (
code128(),qr(),، الخ) بدلا منgenerate()بالنسبة لسلامة النوع يضمنون استخدام الطبقة الصحيحة للخيارات. - المجلس الوزاري
Barcode.symbolالممتلكات تمنح الوصول المباشر إلىEncodedSymbolلتحليل أو تقديم مخصص. BarcodeServiceهو بلا حالة يمكن لمثلة واحدة إنشاء رموز شريط عبر عدة خيوط.- Catch
BarcodeErrorكطبقة أساسية للتعامل مع جميع الاستثناءات المتعلقة بالرموز الشريطية في كتلة واحدة.
القضايا المشتركة
| Issue | Cause | إصلاح |
|---|---|---|
SymbologyNotFoundError | الاسم غير مسجل في SymbologyRegistry | تحقق من التهجئة واستخدم الأسماء القائمة على القانون. |
InvalidInputError | البيانات تنتهك متطلبات الرمزية | تحقق من متطلبات مجموعة الأحرف والطول |
| خروج SVG فارغ | لا توجد وحدات مشفرة | التحقق من أن البيانات غير فارغة وصالحة بالنسبة للرمزية. |