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.
| Mode | Popis: |
|---|---|
AUTO | Automaticky vybere nejkompaktnější kódování |
CODE_A | Velká písmena, číslice a řídicí znaky |
CODE_B | Velká písmena, malá písmena a číslice |
CODE_C | Páry číslic — optimalizováno pro data pouze s čísly |
CODE_AB | Přepíná mezi kódem A a kódem B |
CODE_AC | Přepíná mezi kódem A a kódem C |
CODE_BC | Př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.
| Vlastnost | Typ: | Default | Popis: |
|---|---|---|---|
full_ascii | bool | None | Povolit režim Full ASCII (rozsah 128 znaků pomocí shift párů) |
add_check_digit | bool | None | Př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ů.
| Vlastnost | Typ: | 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 (řídí rozměry symbolu) |
mask | int | 0–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.
| Vlastnost | Typ: | Default | Popis: |
|---|---|---|---|
allow_check_digit_input | bool | None | Př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:
| Vlastnost | Typ: | Popis: |
|---|---|---|
gs1_enabled | `bool | None` |
eci_assignment_number | `int | None` |
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.Hpro 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=Truenastavujte pouze při přijímání předvalidovaných dat z jiného systému. - Použijte
QrEncodeMode.NUMERICpro data QR obsahující jen číslice, aby se minimalizovala velikost symbolu.
Časté problémy
| Problém | Příčina | Oprava |
|---|---|---|
InvalidInputError on Code 39 | Vstup obsahuje malá písmena | Nastavte full_ascii=True v Code39Options |
| QR code je příliš velký | Verze je nastavena příliš nízko vzhledem k délce dat | Odstraňte explicitní version nebo jej zvýšte |
| Špatná kontrolní číslice na EAN-13 | 13místný vstup bez allow_check_digit_input=True | Zadejte 12 číslic (automaticky) nebo nastavte možnost na True |
SymbologyNotFoundError | Chybně napsaný název symbologie v generate() | Použijte jeden z: code128, code39, ean13, ean8, qr, upca, upce |