Lucrarea cu opțiunile de codificare

Lucrarea cu opțiunile de codificare

Lucrarea cu opțiunile de codificare

Fiecare simbolologie de coduri de bare din Aspose.BarCode FOSS pentru Python are o clasă dedicată opțiunilor care controlează comportamentul de codificare. Toate clasele de opții moștenesc de la EncodeOptions, care prevede: gs1_enabled și de: eci_assignment_number proprietăți partajate între simboluri.


Code128Options

Code128Options controale care Codul 128 caracter setare selectă codificator. encode_mode proprietatea acceptă o Code128EncodeMode Valori enum.

ModeDescription
AUTOSelectează în mod automat cea mai compactă codificare.
CODE_ACaractere mari, cifre și caracterele de control
CODE_BCărți mari, mici și cifre
CODE_CPerechi de cifre optimizate pentru date numai numerice
CODE_ABSchimbări între codul A și codurile B
CODE_ACSchimbări între codul A și codurile C
CODE_BCSchimbări între codul B și cel al 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 controlează dacă codificatorul utilizează setul de 43 de caractere de bază sau extensia Full ASCII.

PropertyTypeDefaultDescription
full_asciiboolNoneActivarea modului ASCII complet (interval de 128 caractere prin perechi de schimb)
add_check_digitboolNoneSe adaugă o cifră de verificare 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),
)

Opțiuni de creditare

QrOptions Are cea mai mare suprafaţă de configurare dintre toate simbolurile.

PropertyTypeValues
error_correction_levelQrErrorCorrectionLevelL (7%), M (15%), Q (25%), H (30%)
encoding_modeQrEncodeModeAUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI
versionint1–40 (controls symbol dimensions)
maskint0–7 (manual mask pattern selection)
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 controale de manipulare a cifrelor pentru codurile de bare EAN-13.

PropertyTypeDefaultDescription
allow_check_digit_inputboolNoneAcceptarea intrării cu 13 cifre, cu digit de verificare precomputat
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 funcţionează identic cu Ean13Options furnizarea de 7 cifre pentru sarcina utilă (biblioteka calculează a 8-a), sau setare allow_check_digit_input=True pentru intrarea cu 8 cifre.

from aspose_barcode_foss import Ean8Options

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

Opțiuni de creștere și opțiunile de ridicare

UpcaOptions și de: UpceOptions Urmează acelaşi lucru . allow_check_digit_input model ca opțiuni EAN. UpceOptions are şi o number_system proprietate.

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

Proprietăți de bază EncodeOptions

Toate clasele de opțiuni moștenesc aceste proprietăți din: EncodeOptions:

PropertyTypeDescription
gs1_enabled`boolNone`
eci_assignment_number`intNone`

Sfaturi şi cele mai bune practici

  • Utilizare: Code128EncodeMode.AUTO produce cel mai scurt cod de bare pentru orice input.
  • Setare QrErrorCorrectionLevel.H pentru codurile QR care vor fi imprimate pe suprafețe susceptibile de deteriorare.
  • Lasă biblioteca să calculeze cifrele de verificare doar setate. allow_check_digit_input=True în cazul primirii de date prevalidate dintr-un alt sistem.
  • Utilizare: QrEncodeMode.NUMERIC pentru datele QR cu numai cifre, pentru a minimiza dimensiunea simbolului.

Probleme comune

IssueCauseFixare
InvalidInputError privind codul 39Intrarea conține litere mici.Setare full_ascii=True în Code39Options
Codul QR prea mareVersiune setată prea mică pentru lungimea datelorÎndepărtaţi explicit version sau să-l mărească.
Cifrele de verificare greşite pe EAN-1313-digit input without allow_check_digit_input=TruePas 12 cifre (auto) sau setarea opțiunii la True
SymbologyNotFoundErrorNumele simbolic greșit scris în generate()Utilizați una dintre următoarele: code128, code39, ean13, ean8, qr, upca, upce

See Also

 Română