مقدمه
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،.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 در دسترس است؛ از منبع بسازید. هیچ وابستگی بومی، هیچ ردیابی، هیچ محدودیت استفادهای وجود ندارد.