العمل مع خيارات التشفير
العمل مع خيارات التشفير
كل رمز باركود في Aspose.BarCode FOSS لـ Python لديه فئة خيارات مخصصة تتحكم في سلوك التشفير. جميع فئات الخيار ترث من EncodeOptions,، والتي توفر gs1_enabled و eci_assignment_number خصائص مشتركة عبر الرموز.
Code128Options
Code128Options تحكم أي رمز 128 شخصية يحدد المشفّر يختار. encode_mode الممتلكات تقبل Code128EncodeMode قيمة enum.
| Mode | Description |
|---|---|
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 الكامل.
| Property | Type | Default | Description |
|---|---|---|---|
full_ascii | bool | None | تمكين وضع ASCII الكامل (منطاق 128 حرفاً عبر أزواج التحول) |
add_check_digit | bool | None | أضف رقم فحص 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 لديه أكثر سطح تكوين بين جميع الرموز.
| Property | Type | Values |
|---|---|---|
error_correction_level | QrErrorCorrectionLevel | L (7%) ،, M (15%) ،, Q (25%) ،, H (30%) |
encoding_mode | QrEncodeMode | AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI |
version | int | 1–40 (controls symbol dimensions) |
mask | int | 0–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.
| Property | Type | Default | Description |
|---|---|---|---|
allow_check_digit_input | bool | None | تقبل إدخال 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:
| Property | Type | Description |
|---|---|---|
gs1_enabled | `bool | None` |
eci_assignment_number | `int | None` |
نصائح وأفضل الممارسات
- استخدام
Code128EncodeMode.AUTOما لم يكن لديك سبب محدد لتقييد مجموعات الأحرف فإنه ينتج أقصر رمز شريط لأي مدخل. - المجموعة
QrErrorCorrectionLevel.Hلـ كودات QR التي ستطبع على الأسطح المُتأثرة بالتلف. - دع المكتبة تحسب أرقام التحقق الافتراضية فقط
allow_check_digit_input=Trueعند تلقي البيانات الموثقة مسبقاً من نظام آخر. - استخدام
QrEncodeMode.NUMERICلـ “بيانات الرقم القياسي” التي تقتصر على الأرقام فقط لتقليل حجم الرمز.
القضايا المشتركة
| Issue | Cause | إصلاح |
|---|---|---|
InvalidInputError عن الرمز 39 | المدخل يحتوي على حروف صغيرة. | المجموعة full_ascii=True في Code39Options |
| رمز QR كبير جداً | إصدار محدد منخفض جداً لطول البيانات | إزالة صريحة version أو زادوه . |
| رقم التحقق الخطأ على EAN-13 | 13-digit input without allow_check_digit_input=True | إعطاء 12 رقم (تلقائي) أو تعيين الخيار على True |
SymbologyNotFoundError | اسم رمزي خاطئ في generate() | استخدم أحد: code128, code39, ean13, ean8, qr, upca, upce |