Práce s možnostmi kódování

Práce s možnostmi kódování

Každá symbologie čárových kódů v Aspose.BarCode FOSS pro Python má dedikovanou třídu možností, která řídí chování kódování. Všechny třídy možností dědí z EncodeOptions, která poskytuje vlastnosti gs1_enabled a eci_assignment_number sdílené napříč symbologiemi.


Code128Options

Code128Options určuje, které znakové sady Code 128 enkodér vybírá. Vlastnost encode_mode přijímá hodnotu výčtu Code128EncodeMode.

ModePopis:
AUTOAutomaticky vybere nejkompaktnější kódování
CODE_AVelká písmena, číslice a řídicí znaky
CODE_BVelká písmena, malá písmena a číslice
CODE_CPáry číslic — optimalizováno pro data pouze s čísly
CODE_ABPřepíná mezi kódem A a kódem B
CODE_ACPřepíná mezi kódem A a kódem C
CODE_BCPřepíná mezi kódem B a kódem C
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code128Options, Code128EncodeMode

# AUTO mode — library picks the most compact encoding
bc_auto = barcode.code128("ABC123", encode=Code128Options(encode_mode=Code128EncodeMode.AUTO))

# CODE_C mode — compact encoding for digit-only data
bc_c = barcode.code128("9876543210", encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C))

# CODE_B mode — full alphanumeric support
bc_b = barcode.code128("Hello World", encode=Code128Options(encode_mode=Code128EncodeMode.CODE_B))

Code39Options

Code39Options určuje, zda enkodér používá základní 43-znakovou sadu nebo rozšíření Full ASCII.

VlastnostTyp:DefaultPopis:
full_asciiboolNonePovolit režim Full ASCII (rozsah 128 znaků pomocí shift párů)
add_check_digitboolNonePřidejte kontrolní číslici modulo-43
from aspose_barcode_foss import Code39Options

# Base mode — uppercase letters, digits, and a few special characters
bc_base = barcode.code39("CODE 39")

# Full ASCII mode — encodes the full 128-character ASCII range
bc_full = barcode.code39(
    "Hello, World!",
    encode=Code39Options(full_ascii=True, add_check_digit=True),
)

QrOptions

QrOptions má největší konfigurační plochu ze všech symbolů.

VlastnostTyp:Values
error_correction_levelQrErrorCorrectionLevelL (7%), M (15%), Q (25%), H (30%)
encoding_modeQrEncodeModeAUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI
versionint1–40 (řídí rozměry symbolu)
maskint0–7 (ruční výběr masky vzoru)
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode

# High error correction with byte encoding
bc = barcode.qr(
    "https://example.com",
    encode=QrOptions(
        error_correction_level=QrErrorCorrectionLevel.H,
        encoding_mode=QrEncodeMode.BYTE,
    ),
)

# Numeric mode for digit-only data — most compact QR
bc_num = barcode.qr(
    "0123456789",
    encode=QrOptions(encoding_mode=QrEncodeMode.NUMERIC),
)

# Explicit version and mask
bc_v5 = barcode.qr(
    "TEST",
    encode=QrOptions(version=5, mask=3),
)

Ean13Options

Ean13Options řídí zpracování kontrolní číslice pro čárové kódy EAN-13.

VlastnostTyp:DefaultPopis:
allow_check_digit_inputboolNonePřijmout 13-ciferný vstup s předem vypočtenou kontrolní číslicí
from aspose_barcode_foss import Ean13Options

# 12 digits — library computes the 13th check digit
bc = barcode.ean13("590123412345")

# 13 digits — library validates the provided check digit
bc2 = barcode.ean13(
    "5901234123457",
    encode=Ean13Options(allow_check_digit_input=True),
)

Ean8Options

Ean8Options funguje stejně jako Ean13Options, ale pro 8-ciferné EAN čárové kódy. Zadejte 7 datových číslic (knihovna vypočítá osmou), nebo nastavte allow_check_digit_input=True pro 8-ciferný vstup.

from aspose_barcode_foss import Ean8Options

bc = barcode.ean8("1234567")
bc2 = barcode.ean8("12345670", encode=Ean8Options(allow_check_digit_input=True))

UpcaOptions a UpceOptions

UpcaOptions a UpceOptions následují stejný allow_check_digit_input vzor jako možnosti EAN. UpceOptions také má vlastnost number_system.

from aspose_barcode_foss import UpcaOptions, UpceOptions

# UPC-A: 11 digits, library adds check digit
bc_a = barcode.upca("01234567890")

# UPC-E with pre-computed check digit
bc_e = barcode.upce(
    "01234565",
    encode=UpceOptions(allow_check_digit_input=True),
)

EncodeOptions Základní vlastnosti

Všechny třídy možností dědí tyto vlastnosti z EncodeOptions:

VlastnostTyp:Popis:
gs1_enabled`boolNone`
eci_assignment_number`intNone`

Tipy a osvědčené postupy

  • Použijte Code128EncodeMode.AUTO, pokud nemáte konkrétní důvod omezit sady znaků — vytváří nejkratší čárový kód pro jakýkoli vstup.
  • Nastavte QrErrorCorrectionLevel.H pro kódy QR, které budou tištěny na površích náchylných k poškození.
  • Nechte knihovnu výchozí nastavení vypočítávat kontrolní číslice — allow_check_digit_input=True nastavujte pouze při přijímání předvalidovaných dat z jiného systému.
  • Použijte QrEncodeMode.NUMERIC pro data QR obsahující jen číslice, aby se minimalizovala velikost symbolu.

Časté problémy

ProblémPříčinaOprava
InvalidInputError on Code 39Vstup obsahuje malá písmenaNastavte full_ascii=True v Code39Options
QR code je příliš velkýVerze je nastavena příliš nízko vzhledem k délce datOdstraňte explicitní version nebo jej zvýšte
Špatná kontrolní číslice na EAN-1313místný vstup bez allow_check_digit_input=TrueZadejte 12 číslic (automaticky) nebo nastavte možnost na True
SymbologyNotFoundErrorChybně napsaný název symbologie v generate()Použijte jeden z: code128, code39, ean13, ean8, qr, upca, upce

Viz také:

 Čeština