Вступ
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, який кодує повний діапазон ASCII у 128 символів за допомогою пар зсуву. Додаткова властивість 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 | Hex-колір для смужок (наприклад, "#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; збирайте з вихідного коду. Без нативних залежностей, без телеметрії, без обмежень використання.
Початок роботи
- Початок роботи
- Посібник розробника
- Статті KB
- API Reference
- Репозиторій вихідного коду: aspose-barcode-foss