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,.KANJIversion: Версія 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 | Тип | Опис |
|---|---|---|
scale | float | Єдиний множитель масштабу |
dpi | int | Розмір виходу PNG |
module_width | float | Ширина одного модуля штрих-коду |
module_height | float | Висота одного модуля штрих-коду |
quiet_zone | float | Білий простір навколо штрих-коду |
foreground_color | str | Хекс-кольор для штрихів (наприклад,., "#000000") |
background_color | str | Хекс-колер для фону |
transparent_background | bool | Прозорість фону для ПНГ |
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.
Швидкий старт
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 | Тип | Клас опцій | Основні властивості |
|---|---|---|---|
| Код 128 | 1D | Code128Options | encode_mode |
| Код 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-код | 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 |
Формати виходу:
| Format | Extension | Export |
|---|---|---|
| SVG | .svg | ✓ |
| PNG | .png | ✓ |
Відкритий код та ліцензія
Aspose.BarCode FOSS for Python is MIT licensed. The source is available on GitHub і пакет встановлюється з: PyPI з: pip install aspose-barcode-foss.Без натомість залежних, без телеметричних, немає обмежень використання.