Вступ

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, .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_colorstrHex-колір для смужок (наприклад, "#000000")
background_colorstrHex-колір для фону
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; збирайте з вихідного коду. Без нативних залежностей, без телеметрії, без обмежень використання.


Початок роботи

Пов’язані ресурси