مقدمة

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, .KANJI
  • version: إصدار 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():

الخاصيةالنوعوصف
scalefloatمضاعف مقياس موحد
dpiintدقة إخراج PNG
module_widthfloatعرض وحدة الباركود الواحدة
module_heightfloatارتفاع وحدة الباركود الواحدة
quiet_zonefloatحشو الفراغ حول الباركود
foreground_colorstrلون سداسي عشري للأشرطة (مثال: "#000000")
background_colorstrلون Hex للخلفية
transparent_backgroundboolخلفية شفافة لـ PNG
show_textboolإظهار النص القابل للقراءة للإنسان أسفل الباركود
font_familystrخط للنص القابل للقراءة البشرية
font_sizefloatحجم الخط للنص القابل للقراءة البشرية
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 1281DCode128Optionsencode_mode
Code 391DCode39Optionsfull_ascii, add_check_digit
EAN-131DEan13Optionsallow_check_digit_input
EAN-81DEan8Optionsallow_check_digit_input
QR Code2DQrOptionserror_correction_level, encoding_mode, version, mask
UPC-A1DUpcaOptionsallow_check_digit_input
UPC-E1DUpceOptionsallow_check_digit_input

صيغ الإخراج:

تنسيقامتدادExport
SVG.svg
PNG.png

المصدر المفتوح والترخيص

Aspose.BarCode FOSS لـ Python مرخص برخصة MIT. المصدر متاح على GitHub; قم بالبناء من المصدر. لا توجد تبعيات أصلية، لا تتبع، ولا حدود للاستخدام.


البدء

الموارد ذات الصلة