Úvod

Aspose.BarCode FOSS pro Python poskytuje třídy možností podle symbologie, které řídí chování kódování ve všech sedmi podporovaných formátech čárových kódů. Každá třída možností dědí z EncodeOptions a přidává vlastnosti specifické pro její symbologii — režimy kódování Code 128, výběr ASCII Code 39, úrovně opravy chyb QR a zpracování kontrolní číslice EAN/UPC.

Tento příspěvek popisuje každou třídu možností, její vlastnosti a funkční ukázky kódu. Třídy jsou k dispozici v balíčku aspose_barcode_foss na nejvyšší úrovni.


Klíčové vlastnosti

Režimy kódování Code 128

Code128Options řídí, které znakové sady Code 128 enkodér používá. Vlastnost encode_mode přijímá hodnotu výčtu Code128EncodeMode: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC nebo CODE_BC. AUTO automaticky vybere nejkompaktnější kódování. CODE_C je optimalizováno pro data obsahující pouze číslice (páry číslic kódované jako jediné kódové body).

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 také podporuje vlastnosti gs1_enabled a eci_assignment_number zděděné z EncodeOptions pro GS1 a metadata ECI.

Code 39 kódování

Code39Options určuje, zda kodér používá základní 43-znakovou sadu nebo rozšíření Full ASCII. Nastavte full_ascii=True pro povolení režimu Full ASCII, který kóduje celý 128-znakový rozsah ASCII pomocí posunovacích párů. Volitelná vlastnost add_check_digit přidává kontrolní číslici 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 konfigurace

QrOptions nabízí nejbohatší sadu konfigurací mezi podporovanými symbologiemi:

  • error_correction_level: QrErrorCorrectionLevel.L (7%), .M (15%), .Q (25%), .H (30%)
  • encoding_mode: QrEncodeMode.AUTO, .NUMERIC, .ALPHANUMERIC, .BYTE, .KANJI
  • version: verze QR (1–40), řídící velikost symbolu
  • mask: maskovací vzor (0–7) pro ruční výběr
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()

Kontrolní číslice EAN a UPC

Ean13Options, Ean8Options, UpcaOptions a UpceOptions mají každý vlastnost allow_check_digit_input. Ve výchozím nastavení knihovna vypočítá kontrolní číslici automaticky z dat. Nastavte allow_check_digit_input=True, pokud vaše data již obsahují kontrolní číslici.

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),
)

Možnosti vykreslování

RenderOptions se vztahuje na všechny symboliky a řídí vizuální výstup. Předávejte ji do to_svg() nebo to_png():

VlastnostTyp:Popis:
scalefloatJednotný násobek měřítka
dpiintRozlišení pro výstup PNG
module_widthfloatŠířka jednoho modulu čárového kódu
module_heightfloatVýška jednoho modulu čárového kódu
quiet_zonefloatOdsazení kolem čárového kódu
foreground_colorstrHexadecimální barva pro pruhy (např. "#000000")
background_colorstrHexadecimální barva pozadí
transparent_backgroundboolPrůhledné pozadí pro PNG
show_textboolZobrazit čitelný text pod čárovým kódem
font_familystrPísmo pro čitelný text
font_sizefloatVelikost písma pro čitelný text
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",
))

Zpracování chyb

Veškerá validace možností kódování probíhá při parsování. Pokud jsou poskytnuta neplatná data nebo nekompatibilní možnosti, knihovna vyvolá typovanou výjimku před zahájením jakéhokoli kódování:

  • InvalidInputError — data obsahují znaky, které symbolika nepodporuje
  • EncodingError — kódování selže (např. data překračují kapacitu)
  • SymbologyNotFoundError — neznámý název symbologie předaný do generate()
  • UnsupportedCapabilityError — požadovaná funkce není pro tuto symbologii k dispozici

Všechny třídy výjimek dědí z BarcodeError.


Rychlý start

git clone https://github.com/aspose-barcode-foss/Aspose.BarCode-FOSS-for-Python.git
cd Aspose.BarCode-FOSS-for-Python
pip install -e .

Vygenerujte čárové kódy s různými možnostmi kódování a uložte 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,
    )))

Podporované formáty

SymbologyTyp:Třída OptionsKlíčové vlastnosti
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

Výstupní formáty:

FormátPříponaExport
SVG.svg
PNG.png

Open Source a licencování

Aspose.BarCode FOSS pro Python je licencováno pod MIT. Zdrojový kód je dostupný na GitHub; sestavte ze zdroje. Žádné nativní závislosti, žádná telemetrie, žádná omezení používání.


Začínáme

Související zdroje