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, .KANJI
  • version: wersja QR (1–40), kontrolująca rozmiar symbolu
  • mask: 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śćTypOpis
scalefloatJednolity mnożnik skali
dpiintRozdzielczość wyjścia PNG
module_widthfloatSzerokość jednego modułu kodu kreskowego
module_heightfloatWysokość jednego modułu kodu kreskowego
quiet_zonefloatWypełnienie białą przestrzenią wokół kodu kreskowego
foreground_colorstrKolor szesnastkowy dla pasków (np. "#000000")
background_colorstrKolor szesnastkowy dla tła
transparent_backgroundboolPrzezroczyste tło dla PNG
show_textboolPokaż tekst czytelny dla człowieka pod kodem kreskowym
font_familystrCzcionka dla tekstu czytelnego dla człowieka
font_sizefloatRozmiar 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 do generate()
  • 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

SymbologyTypKlasa OpcjiKluczowe właściwości
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

Formaty wyjściowe:

FormatRozszerzenieExport
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.


Rozpoczęcie

Powiązane zasoby