Introduction

Aspose.BarCode FOSS for Python provides per-symbology option classes that control encoding behavior across all seven supported barcode formats. Each option class inherits from EncodeOptions і додає властивості, специфічні для його симвології Код 128 кодування режимів, код 39 ASCII вибір, рівні виправлення QR помилок та обробка EAN / UPC контрольних цифр.

У цьому статті обговорюється кожен клас опцій, його властивості та приклади робочого коду. Всі класи доступні з верхнього рівня. aspose_barcode_foss пакету.


Ключові особливості

Код 128 Моди шифрування

Code128Options Код 128 визначає, який код використовується кодером. encode_mode нерухомість приймає Code128EncodeMode значення enum: 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()

Код 128 також підтримує gs1_enabled і eci_assignment_number нерухомість, успадкована від EncodeOptions для метаданих GS1 та ECI.

Код 39 - кодування

Code39Options керуває, чи використовується кодер базовий набір 43 символів або розширення Full ASCII. full_ascii=True для включення режиму Full ASCII, який кодує повний діапазон 128 символів AS CII за допомогою пар зрушень. add_check_digit власність додає номер модуля-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-коду

QrOptions пропонує найбільшу конфігурацію серед усіх символіки:

  • error_correction_level: QrErrorCorrectionLevel.L (7%), .M (15%), .Q (25%), .H (30%)
  • encoding_mode: QrEncodeMode.AUTO, .NUMERIC, .ALPHANUMERIC, .BYTE, .KANJI
  • version: Версія QR (140), розмір символу контролю.
  • mask: маска (07) для ручного вибору.
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():

PropertyТипОпис
scalefloatЄдиний множитель масштабу
dpiintРозмір виходу PNG
module_widthfloatШирина одного модуля штрих-коду
module_heightfloatВисота одного модуля штрих-коду
quiet_zonefloatБілий простір навколо штрих-коду
foreground_colorstrХекс-кольор для штрихів (наприклад,., "#000000")
background_colorstrХекс-колер для фону
transparent_backgroundboolПрозорість фону для ПНГ
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.


Швидкий старт

pip install aspose-barcode-foss

Створювати штрих-коди з різними варіантами кодування та зберігати їх:

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ТипКлас опційОсновні властивості
Код 1281DCode128Optionsencode_mode
Код 391DCode39Optionsfull_ascii, add_check_digit
EAN-131DEan13Optionsallow_check_digit_input
EAN-81DEan8Optionsallow_check_digit_input
QR-код2DQrOptionserror_correction_level, encoding_mode, version, mask
UPC-A1DUpcaOptionsallow_check_digit_input
UPC-E1DUpceOptionsallow_check_digit_input

Формати виходу:

FormatExtensionExport
SVG.svg
PNG.png

Відкритий код та ліцензія

Aspose.BarCode FOSS for Python is MIT licensed. The source is available on GitHub і пакет встановлюється з: PyPI з: pip install aspose-barcode-foss.Без натомість залежних, без телеметричних, немає обмежень використання.


Починати з

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