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.
| Mode | Description |
|---|---|
AUTO | Selectează în mod automat cea mai compactă codificare. |
CODE_A | Caractere mari, cifre și caracterele de control |
CODE_B | Cărți mari, mici și cifre |
CODE_C | Perechi de cifre optimizate pentru date numai numerice |
CODE_AB | Schimbări între codul A și codurile B |
CODE_AC | Schimbări între codul A și codurile C |
CODE_BC | Schimbă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.
| Property | Type | Default | Description |
|---|---|---|---|
full_ascii | bool | None | Activarea modului ASCII complet (interval de 128 caractere prin perechi de schimb) |
add_check_digit | bool | None | Se 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.
| Property | Type | Values |
|---|---|---|
error_correction_level | QrErrorCorrectionLevel | L (7%), M (15%), Q (25%), H (30%) |
encoding_mode | QrEncodeMode | AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI |
version | int | 1–40 (controls symbol dimensions) |
mask | int | 0–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.
| Property | Type | Default | Description |
|---|---|---|---|
allow_check_digit_input | bool | None | Acceptarea 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:
| Property | Type | Description |
|---|---|---|
gs1_enabled | `bool | None` |
eci_assignment_number | `int | None` |
Sfaturi şi cele mai bune practici
- Utilizare:
Code128EncodeMode.AUTOproduce cel mai scurt cod de bare pentru orice input. - Setare
QrErrorCorrectionLevel.Hpentru 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.NUMERICpentru datele QR cu numai cifre, pentru a minimiza dimensiunea simbolului.
Probleme comune
| Issue | Cause | Fixare |
|---|---|---|
InvalidInputError privind codul 39 | Intrarea conține litere mici. | Setare full_ascii=True în Code39Options |
| Codul QR prea mare | Versiune setată prea mică pentru lungimea datelor | Îndepărtaţi explicit version sau să-l mărească. |
| Cifrele de verificare greşite pe EAN-13 | 13-digit input without allow_check_digit_input=True | Pas 12 cifre (auto) sau setarea opțiunii la True |
SymbologyNotFoundError | Numele simbolic greșit scris în generate() | Utilizați una dintre următoarele: code128, code39, ean13, ean8, qr, upca, upce |