Wprowadzenie
Aspose.BarCode FOSS dla Python udostępnia klasy opcji per-symboli, które kontrolują zachowanie kodowania we wszystkich siedmiu obsługiwanych formatach kodów kreskowych. Każda klasa opcji dziedziczy po EncodeOptions i dodaje właściwości specyficzne dla jej symboli — Code 128 tryby kodowania, Code 39 wybór ASCII, QR poziomy korekcji błędów oraz EAN/UPC obsługę cyfry kontrolnej.
Ten wpis omawia każdą klasę opcji, jej właściwości oraz działające przykłady kodu. Klasy są dostępne w pakiecie najwyższego poziomu aspose_barcode_foss.
Kluczowe funkcje
Code 128 Tryby kodowania
Code128Options kontroluje, które zestawy znaków Code 128 używa enkoder. Właściwość encode_mode przyjmuje wartość wyliczenia Code128EncodeMode: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC lub CODE_BC. AUTO wybiera najkompaktowsze kodowanie automatycznie. CODE_C jest zoptymalizowane pod kątem danych wyłącznie cyfrowych (pary cyfr kodowane jako pojedyncze punkty kodowe).
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 obsługuje również właściwości gs1_enabled i eci_assignment_number dziedziczone po EncodeOptions dla GS1 oraz metadanych ECI.
Code 39 Kodowanie
Code39Options kontroluje, czy enkoder używa zestawu bazowego 43-znakowego lub rozszerzenia Full ASCII. Ustaw full_ascii=True, aby włączyć tryb Full ASCII, który koduje pełny zakres 128 znaków ASCII przy użyciu par przesunięć. Opcjonalna właściwość add_check_digit dodaje cyfrę kontrolną 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 Konfiguracja
QrOptions oferuje najbogatszy zestaw konfiguracji spośród obsługiwanych symbologii:
error_correction_level:QrErrorCorrectionLevel.L(7%),.M(15%),.Q(25%),.H(30%)encoding_mode:QrEncodeMode.AUTO,.NUMERIC,.ALPHANUMERIC,.BYTE,.KANJIversion: wersja QR (1–40), kontrolująca rozmiar symbolumask: wzorzec maski (0–7) do ręcznego wyboru
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()
Cyfry kontrolne EAN i UPC
Ean13Options, Ean8Options, UpcaOptions i UpceOptions mają właściwość allow_check_digit_input. Domyślnie biblioteka oblicza cyfrę kontrolną automatycznie na podstawie danych. Ustaw allow_check_digit_input=True, jeśli Twoje dane już zawierają cyfrę kontrolną.
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),
)
Opcje renderowania
RenderOptions ma zastosowanie do wszystkich symbologii i kontroluje wyjście wizualne. Przekaż go do to_svg() lub to_png():
| Właściwość | Typ | Opis |
|---|---|---|
scale | float | Jednolity mnożnik skali |
dpi | int | Rozdzielczość wyjścia PNG |
module_width | float | Szerokość jednego modułu kodu kreskowego |
module_height | float | Wysokość jednego modułu kodu kreskowego |
quiet_zone | float | Wypełnienie białą przestrzenią wokół kodu kreskowego |
foreground_color | str | Kolor szesnastkowy dla pasków (np. "#000000") |
background_color | str | Kolor szesnastkowy dla tła |
transparent_background | bool | Przezroczyste tło dla PNG |
show_text | bool | Pokaż tekst czytelny dla człowieka pod kodem kreskowym |
font_family | str | Czcionka dla tekstu czytelnego dla człowieka |
font_size | float | Rozmiar czcionki dla tekstu czytelnego dla człowieka |
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",
))
Obsługa błędów
Wszystkie walidacje opcji kodowania odbywają się w czasie parsowania. Jeśli zostaną podane nieprawidłowe dane lub niekompatybilne opcje, biblioteka zgłasza typowane wyjątki przed rozpoczęciem jakiegokolwiek kodowania:
InvalidInputError— dane zawierają znaki nieobsługiwane przez symbologięEncodingError— kodowanie nie powiodło się (np. dane przekraczają pojemność)SymbologyNotFoundError— nieznana nazwa symboliki przekazana dogenerate()UnsupportedCapabilityError— żądana funkcja nie jest dostępna dla tej symboliki
Wszystkie klasy wyjątków dziedziczą po BarcodeError.
Szybki start
git clone https://github.com/aspose-barcode-foss/Aspose.BarCode-FOSS-for-Python.git
cd Aspose.BarCode-FOSS-for-Python
pip install -e .Generuj kody kreskowe z różnymi opcjami kodowania i zapisz je:
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,
)))
Obsługiwane formaty
| Symbology | Typ | Klasa Opcji | Kluczowe właściwości |
|---|---|---|---|
| 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 |
Formaty wyjściowe:
| Format | Rozszerzenie | Export |
|---|---|---|
| SVG | .svg | ✓ |
| PNG | .png | ✓ |
Open Source i Licencjonowanie
Aspose.BarCode FOSS dla Python jest licencjonowany na licencji MIT. Źródło jest dostępne na GitHub; buduj ze źródła. Brak natywnych zależności, brak telemetrii, brak limitów użycia.