Trabalhar com opções de codificação

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.

ModeDescription
AUTOSeleciona a codificação mais compacta automaticamente
CODE_AMaiúsculas, dígitos e caracteres de controlo
CODE_BMaiúsculas, minúsculares e dígitos
CODE_CPares de dígitos otimizados para dados exclusivamente numéricos
CODE_ABIntercomutadores entre o código A e o Código B
CODE_ACIntercomutadores entre o código A e o Código C
CODE_BCIntercomutadores 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.

PropertyTypeDefaultDescription
full_asciiboolNoneAtivar modo ASCII completo (intervalo de 128 caracteres por pares de deslocamentos)
add_check_digitboolNoneAnexar 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.

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 Controles de controlo do tratamento dos dígitos para os códigos de barras EAN-13.

PropertyTypeDefaultDescription
allow_check_digit_inputboolNoneAceitar 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:

PropertyTypeDescription
gs1_enabled`boolNone`
eci_assignment_number`intNone`

Dicas e melhores práticas

  • Utilização: Code128EncodeMode.AUTO A 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.H para 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=True Quando recebem dados pré-validados de outro sistema.
  • Utilização: QrEncodeMode.NUMERIC para dados QR apenas com dígitos, a fim de minimizar o tamanho do símbolo.

Problemas comuns

IssueCauseCorreção
InvalidInputError sobre o código 39Entrada contém letras minúsculasSet (s) full_ascii=True em: Code39Options
QR code muito grande .Versionado muito baixo para o comprimento dos dadosRemover explícito version Ou aumentá-la.
Número de verificação errado na EAN-1313-digit input without allow_check_digit_input=TruePasse 12 dígitos (automático) ou defina a opção para True
SymbologyNotFoundErrorNome de simbologia mal escrito em: generate()Utilize uma das seguintes opções: code128, code39, ean13, ean8, qr, upca, upce

See Also

 Português