مقدمه

Aspose.BarCode FOSS برای Python کلاس‌های گزینه‌ای مخصوص هر سمبولی را فراهم می‌کند که رفتار رمزگذاری را در هفت فرمت بارکد پشتیبانی‌شده کنترل می‌کنند. هر کلاس گزینه از EncodeOptions ارث می‌برد و ویژگی‌های خاص سمبولی خود را اضافه می‌کند — حالت‌های رمزگذاری Code 128، انتخاب ASCII Code 39، سطوح تصحیح خطا QR، و مدیریت رقم کنترل EAN/UPC.

این پست به بررسی هر کلاس گزینه، ویژگی‌های آن و مثال‌های کد عملی می‌پردازد. کلاس‌ها از بسته سطح بالا aspose_barcode_foss در دسترس هستند.


ویژگی‌های کلیدی

حالت‌های رمزگذاری Code 128

Code 128 کنترل می‌کند که رمزگذار از کدام مجموعه کاراکتری Code128Options استفاده کند. ویژگی encode_mode یک مقدار enum از نوع 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 در دسترس است؛ از منبع بسازید. هیچ وابستگی بومی، هیچ ردیابی، هیچ محدودیت استفاده‌ای وجود ندارد.


شروع کار

منابع مرتبط