مقدمة
Aspose.BarCode FOSS لـ Python يوفر فئات خيارات حسب الرمز لكل رمز تتحكم في سلوك الترميز عبر جميع الصيغ السبعة المدعومة للباركود. كل فئة خيار ترث من EncodeOptions وتضيف خصائص خاصة برمزها — أوضاع ترميز Code 128، اختيار ASCII لـ Code 39، مستويات تصحيح الأخطاء لـ QR، ومعالجة رقم التحقق EAN/UPC.
يغطي هذا المنشور كل فئة خيار، وخصائصها، وأمثلة على الشيفرة العملية. الفئات متوفرة من حزمة aspose_barcode_foss المستوى الأعلى.
الميزات الرئيسية
أوضاع ترميز Code 128
Code128Options يتحكم في مجموعات الأحرف الخاصة بـ Code 128 التي يستخدمها المُشفّر. الخاصية encode_mode تقبل قيمة تعداد Code128EncodeMode: AUTO، CODE_A، CODE_B، CODE_C، CODE_AB، CODE_AC أو CODE_BC. AUTO يختار الترميز الأكثر كثافة تلقائيًا. CODE_C مُحسّن للبيانات التي تحتوي على أرقام فقط (أزواج من الأرقام تُشفّر كنقطة شفرة واحدة).
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code128Options, Code128EncodeMode
bc = barcode.code128(
"1234567890",
encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
svg = bc.to_svg()
Code 128 يدعم أيضًا خصائص gs1_enabled وeci_assignment_number الموروثة من EncodeOptions لـ GS1 وبيانات التعريف ECI.
Code 39 الترميز
Code39Options يتحكم فيما إذا كان المشفر يستخدم مجموعة الأحرف الأساسية ذات 43 حرفًا أو امتداد Full ASCII. اضبط full_ascii=True لتمكين وضع Full ASCII، الذي يرمّز النطاق الكامل لـ 128 حرفًا من ASCII باستخدام أزواج التحويل. الخاصية الاختيارية add_check_digit تُضيف رقم تحقق modulo-43.
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code39Options
bc = barcode.code39(
"Hello",
encode=Code39Options(full_ascii=True, add_check_digit=True),
)
svg = bc.to_svg()
QR Code التكوين
QrOptions يقدم مجموعة التكوين الأغنى بين الرموز المدعومة:
error_correction_level:QrErrorCorrectionLevel.L(7%),.M(15%),.Q(25%),.H(30%)encoding_mode:QrEncodeMode.AUTO,.NUMERIC,.ALPHANUMERIC,.BYTE,.KANJIversion: إصدار QR (1–40)، يتحكم في حجم الرمزmask: نمط القناع (0–7) للاختيار اليدوي
import aspose_barcode_foss as barcode
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode
bc = barcode.qr(
"https://example.com/product/12345",
encode=QrOptions(
error_correction_level=QrErrorCorrectionLevel.Q,
encoding_mode=QrEncodeMode.BYTE,
),
)
png_bytes = bc.to_png()
أرقام التحقق EAN و UPC
Ean13Options، Ean8Options، UpcaOptions و UpceOptions لديها خاصية allow_check_digit_input. بشكل افتراضي، تقوم المكتبة بحساب رقم التحقق تلقائيًا من البيانات. عيّن allow_check_digit_input=True إذا كانت بياناتك تتضمن بالفعل رقم التحقق.
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Ean13Options
# Automatic check digit (12 digits in, library appends the 13th)
bc = barcode.ean13("590123412345")
svg = bc.to_svg()
# Pre-computed check digit (13 digits, library validates)
bc2 = barcode.ean13(
"5901234123457",
encode=Ean13Options(allow_check_digit_input=True),
)
خيارات العرض
RenderOptions ينطبق على جميع الرموز ويُتحكم في المخرجات البصرية. مرّرها إلى to_svg() أو to_png():
| الخاصية | النوع | وصف |
|---|---|---|
scale | float | مضاعف مقياس موحد |
dpi | int | دقة إخراج PNG |
module_width | float | عرض وحدة الباركود الواحدة |
module_height | float | ارتفاع وحدة الباركود الواحدة |
quiet_zone | float | حشو الفراغ حول الباركود |
foreground_color | str | لون سداسي عشري للأشرطة (مثال: "#000000") |
background_color | str | لون Hex للخلفية |
transparent_background | bool | خلفية شفافة لـ PNG |
show_text | bool | إظهار النص القابل للقراءة للإنسان أسفل الباركود |
font_family | str | خط للنص القابل للقراءة البشرية |
font_size | float | حجم الخط للنص القابل للقراءة البشرية |
import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions
bc = barcode.upca("01234567890")
png = bc.to_png(options=RenderOptions(
scale=3.0,
dpi=300,
foreground_color="#1a1a1a",
background_color="#ffffff",
show_text=True,
font_family="Courier New",
))
معالجة الأخطاء
جميع عمليات التحقق من خيارات الترميز تتم أثناء التحليل. إذا تم توفير بيانات غير صالحة أو خيارات غير متوافقة، تُطلق المكتبة استثناءً من نوع معين قبل بدء أي ترميز:
InvalidInputError— البيانات تحتوي على أحرف غير مدعومة من قبل الرموزEncodingError— فشل الترميز (مثال: البيانات تتجاوز السعة)SymbologyNotFoundError— اسم رموز غير معروف تم تمريره إلىgenerate()UnsupportedCapabilityError— الميزة المطلوبة غير متوفرة لهذه الرموز
جميع فئات الاستثناءات ترث من BarcodeError.
البدء السريع
git clone https://github.com/aspose-barcode-foss/Aspose.BarCode-FOSS-for-Python.git
cd Aspose.BarCode-FOSS-for-Python
pip install -e .إنشاء الباركودات باستخدام خيارات ترميز مختلفة وحفظها:
import aspose_barcode_foss as barcode
from aspose_barcode_foss import (
Code128Options, Code128EncodeMode,
QrOptions, QrErrorCorrectionLevel,
RenderOptions,
)
# Code 128 in CODE_C mode (compact digit encoding)
c128 = barcode.code128(
"9876543210",
encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
with open("code128.svg", "w") as f:
f.write(c128.to_svg())
# QR with high error correction
qr = barcode.qr(
"https://example.com",
encode=QrOptions(error_correction_level=QrErrorCorrectionLevel.H),
)
with open("qr.png", "wb") as f:
f.write(qr.to_png(options=RenderOptions(scale=4.0)))
# EAN-13 with custom colors
ean = barcode.ean13("590123412345")
with open("ean13.svg", "w") as f:
f.write(ean.to_svg(options=RenderOptions(
foreground_color="#003366",
show_text=True,
)))
الصيغ المدعومة
| Symbology | النوع | فئة الخيارات | الخصائص الأساسية |
|---|---|---|---|
| Code 128 | 1D | Code128Options | encode_mode |
| Code 39 | 1D | Code39Options | full_ascii, add_check_digit |
| EAN-13 | 1D | Ean13Options | allow_check_digit_input |
| EAN-8 | 1D | Ean8Options | allow_check_digit_input |
| QR Code | 2D | QrOptions | error_correction_level, encoding_mode, version, mask |
| UPC-A | 1D | UpcaOptions | allow_check_digit_input |
| UPC-E | 1D | UpceOptions | allow_check_digit_input |
صيغ الإخراج:
| تنسيق | امتداد | Export |
|---|---|---|
| SVG | .svg | ✓ |
| PNG | .png | ✓ |
المصدر المفتوح والترخيص
Aspose.BarCode FOSS لـ Python مرخص برخصة MIT. المصدر متاح على GitHub; قم بالبناء من المصدر. لا توجد تبعيات أصلية، لا تتبع، ولا حدود للاستخدام.