العمل مع خيارات التشفير

العمل مع خيارات التشفير

العمل مع خيارات التشفير

كل رمز باركود في Aspose.BarCode FOSS لـ Python لديه فئة خيارات مخصصة تتحكم في سلوك التشفير. جميع فئات الخيار ترث من EncodeOptions,، والتي توفر gs1_enabled و eci_assignment_number خصائص مشتركة عبر الرموز.


Code128Options

Code128Options تحكم أي رمز 128 شخصية يحدد المشفّر يختار. encode_mode الممتلكات تقبل Code128EncodeMode قيمة enum.

ModeDescription
AUTOيختار التشفير الأكثر ضيقة تلقائياً
CODE_Aالحروف الكبيرة والرقم وخطوط التحكم
CODE_Bالحروف الكبيرة والصغرى والأرقام
CODE_Cأزواج الأرقام مُحسنة للبيانات الرقمية فقط
CODE_ABالتبديلات بين الكود A والكود B
CODE_ACالتبديلات بين الكود A والكود C
CODE_BCالتبديلات بين الكود B والكود C
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code128Options, Code128EncodeMode

# AUTO mode — library picks the most compact encoding
bc_auto = barcode.code128("ABC123", encode=Code128Options(encode_mode=Code128EncodeMode.AUTO))

# CODE_C mode — compact encoding for digit-only data
bc_c = barcode.code128("9876543210", encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C))

# CODE_B mode — full alphanumeric support
bc_b = barcode.code128("Hello World", encode=Code128Options(encode_mode=Code128EncodeMode.CODE_B))

Code39Options

Code39Options يسيطر على ما إذا كان المُرقّم يستخدم مجموعة الأساسية من 43 حرفًا أو تمديد ASCII الكامل.

PropertyTypeDefaultDescription
full_asciiboolNoneتمكين وضع ASCII الكامل (منطاق 128 حرفاً عبر أزواج التحول)
add_check_digitboolNoneأضف رقم فحص Modulo-43
from aspose_barcode_foss import Code39Options

# Base mode — uppercase letters, digits, and a few special characters
bc_base = barcode.code39("CODE 39")

# Full ASCII mode — encodes the full 128-character ASCII range
bc_full = barcode.code39(
    "Hello, World!",
    encode=Code39Options(full_ascii=True, add_check_digit=True),
)

خيارات Qr

QrOptions لديه أكثر سطح تكوين بين جميع الرموز.

PropertyTypeValues
error_correction_levelQrErrorCorrectionLevelL (7%) ،, M (15%) ،, Q (25%) ،, H (30%)
encoding_modeQrEncodeModeAUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI
versionint1–40 (controls symbol dimensions)
maskint0–7 (manual mask pattern selection)
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode

# High error correction with byte encoding
bc = barcode.qr(
    "https://example.com",
    encode=QrOptions(
        error_correction_level=QrErrorCorrectionLevel.H,
        encoding_mode=QrEncodeMode.BYTE,
    ),
)

# Numeric mode for digit-only data — most compact QR
bc_num = barcode.qr(
    "0123456789",
    encode=QrOptions(encoding_mode=QrEncodeMode.NUMERIC),
)

# Explicit version and mask
bc_v5 = barcode.qr(
    "TEST",
    encode=QrOptions(version=5, mask=3),
)

Ean13Options

Ean13Options التحكم في معالجة رقم التحقق لبرمجيات شريط EAN-13.

PropertyTypeDefaultDescription
allow_check_digit_inputboolNoneتقبل إدخال 13 رقم مع رقمة التحقق المحوسبة مسبقاً.
from aspose_barcode_foss import Ean13Options

# 12 digits — library computes the 13th check digit
bc = barcode.ean13("590123412345")

# 13 digits — library validates the provided check digit
bc2 = barcode.ean13(
    "5901234123457",
    encode=Ean13Options(allow_check_digit_input=True),
)

Ean8Options

Ean8Options يعمل بشكل متطابق مع Ean13Options ولكن لبرمجيات شريط EAN 8 أرقام. إمداد 7 خانة الحمل (المكتبة تحسب الثامن) ، أو تعيين allow_check_digit_input=True لإدخال 8 أرقام.

from aspose_barcode_foss import Ean8Options

bc = barcode.ean8("1234567")
bc2 = barcode.ean8("12345670", encode=Ean8Options(allow_check_digit_input=True))

خيارات التخفيض والخيارة المتقدمة

UpcaOptions و UpceOptions اتبع نفس الشيء allow_check_digit_input نمط كخيارات EAN. UpceOptions أيضاً لديه number_system الممتلكات.

from aspose_barcode_foss import UpcaOptions, UpceOptions

# UPC-A: 11 digits, library adds check digit
bc_a = barcode.upca("01234567890")

# UPC-E with pre-computed check digit
bc_e = barcode.upce(
    "01234565",
    encode=UpceOptions(allow_check_digit_input=True),
)

خصائص قاعدة EncodeOptions

جميع فئات الخيار ترث هذه الخصائص من EncodeOptions:

PropertyTypeDescription
gs1_enabled`boolNone`
eci_assignment_number`intNone`

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

  • استخدام Code128EncodeMode.AUTO ما لم يكن لديك سبب محدد لتقييد مجموعات الأحرف فإنه ينتج أقصر رمز شريط لأي مدخل.
  • المجموعة QrErrorCorrectionLevel.H لـ كودات QR التي ستطبع على الأسطح المُتأثرة بالتلف.
  • دع المكتبة تحسب أرقام التحقق الافتراضية فقط allow_check_digit_input=True عند تلقي البيانات الموثقة مسبقاً من نظام آخر.
  • استخدام QrEncodeMode.NUMERIC لـ “بيانات الرقم القياسي” التي تقتصر على الأرقام فقط لتقليل حجم الرمز.

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

IssueCauseإصلاح
InvalidInputError عن الرمز 39المدخل يحتوي على حروف صغيرة.المجموعة full_ascii=True في Code39Options
رمز QR كبير جداًإصدار محدد منخفض جداً لطول البياناتإزالة صريحة version أو زادوه .
رقم التحقق الخطأ على EAN-1313-digit input without allow_check_digit_input=Trueإعطاء 12 رقم (تلقائي) أو تعيين الخيار على True
SymbologyNotFoundErrorاسم رمزي خاطئ في generate()استخدم أحد: code128, code39, ean13, ean8, qr, upca, upce

See Also

 العربية