Trabalhar com opções de codificação
Trabalhar com opções de codificação
Cada simbologia de código de barras em Aspose. BarCode FOSS para Python tem uma classe de opções dedicada que controla o comportamento de codificação. Todas as classes de Opção herdam do PHP, e são geradas por ele. EncodeOptions, que prevê: gs1_enabled e a) eci_assignment_number propriedades compartilhadas através de simbologias.
Code128Options
Code128Options Os controles que o código 128 caracter define seleciona o codificador. encode_mode propriedade aceita um Code128EncodeMode valor enum.
| Mode | Description |
|---|---|
AUTO | Seleciona a codificação mais compacta automaticamente |
CODE_A | Maiúsculas, dígitos e caracteres de controlo |
CODE_B | Maiúsculas, minúsculares e dígitos |
CODE_C | Pares de dígitos otimizados para dados exclusivamente numéricos |
CODE_AB | Intercomutadores entre o código A e o Código B |
CODE_AC | Intercomutadores entre o código A e o Código C |
CODE_BC | Intercomutadores entre o código B e o Código 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 Controla se o codificador utiliza o conjunto de caracteres base 43 ou a extensão Full ASCII.
| Property | Type | Default | Description |
|---|---|---|---|
full_ascii | bool | None | Ativar modo ASCII completo (intervalo de 128 caracteres por pares de deslocamentos) |
add_check_digit | bool | None | Anexar um dígito de verificação 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),
)QrOpções
QrOptions tem a maior superfície de configuração entre todas as simbologias.
| 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 Controles de controlo do tratamento dos dígitos para os códigos de barras EAN-13.
| Property | Type | Default | Description |
|---|---|---|---|
allow_check_digit_input | bool | None | Aceitar entrada de 13 dígitos com dígrado de verificação pré-computado |
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 funciona de forma idêntica a Ean13Options fornecer 7 dígitos de carga útil (biblioteca calcula o 8o), ou definir allow_check_digit_input=True para entrada de 8 dígitos.
from aspose_barcode_foss import Ean8Options
bc = barcode.ean8("1234567")
bc2 = barcode.ean8("12345670", encode=Ean8Options(allow_check_digit_input=True))Opções de compra e opções a pagar
UpcaOptions e a) UpceOptions Segue o mesmo . allow_check_digit_input padrão como opções de EAN. UpceOptions também tem um number_system propriedade.
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),
)Propriedades de Base do EncodeOptions
Todas as classes de opções herdam estas propriedades a partir da EncodeOptions:
| Property | Type | Description |
|---|---|---|
gs1_enabled | `bool | None` |
eci_assignment_number | `int | None` |
Dicas e melhores práticas
- Utilização:
Code128EncodeMode.AUTOA menos que você tenha uma razão específica para restringir conjuntos de caracteres ele produz o código de barras mais curto para qualquer entrada. - Set (s)
QrErrorCorrectionLevel.Hpara os códigos QR que serão impressos em superfícies suscetíveis a danos. - Deixe a biblioteca calcular dígitos de verificação por padrão apenas definido
allow_check_digit_input=TrueQuando recebem dados pré-validados de outro sistema. - Utilização:
QrEncodeMode.NUMERICpara dados QR apenas com dígitos, a fim de minimizar o tamanho do símbolo.
Problemas comuns
| Issue | Cause | Correção |
|---|---|---|
InvalidInputError sobre o código 39 | Entrada contém letras minúsculas | Set (s) full_ascii=True em: Code39Options |
| QR code muito grande . | Versionado muito baixo para o comprimento dos dados | Remover explícito version Ou aumentá-la. |
| Número de verificação errado na EAN-13 | 13-digit input without allow_check_digit_input=True | Passe 12 dígitos (automático) ou defina a opção para True |
SymbologyNotFoundError | Nome de simbologia mal escrito em: generate() | Utilize uma das seguintes opções: code128, code39, ean13, ean8, qr, upca, upce |