Trabajar con Opciones de Encode

Trabajar con Opciones de Encode

Trabajar con Opciones de Encode

Cada simbología de código de barras en Aspose.BarCode FOSS para Python tiene una clase de opciones dedicada que controla el comportamiento de codificación. EncodeOptions,que proporciona gs1_enabled y eci_assignment_number propiedades compartidas a través de las simbologías.


Code128Options

Code128Options controles que el código 128 caracteriza selecciona el codec. encode_mode La propiedad acepta a Code128EncodeMode El valor enum.

ModeDescription
AUTOSelecciona el codificación más compacto automáticamente
CODE_ALos números, los caracteres de control y el número
CODE_BCortes, Cores y Digitos
CODE_CPais digitales: optimizado para los datos numéricos únicos
CODE_ABCambios entre el código A y el Código B
CODE_ACIntercambios entre el código A y el Código C
CODE_BCIntercambios entre el código B y el 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 Controlar si el codificador utiliza la base de caracteres 43 o la extensión ASCII completa.

PropertyTypeDefaultDescription
full_asciiboolNoneCapacita el modo ASCII completo (128 caracteres por par de cambios)
add_check_digitboolNoneAñadir un módulo-43 de control digital
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),
)

QrOpciones

QrOptions Tiene la superficie más configurada entre todas las simbologías.

PropertyTypeValues
error_correction_levelQrErrorCorrectionLevelL (7 % de la población), M El 15 %), Q El 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 Controlar el control de los digitales para EAN-13 barcodes.

PropertyTypeDefaultDescription
allow_check_digit_inputboolNoneAcceptar entrada de 13 dígitos con un número de control precomputado
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 funcionan de manera idéntica a Ean13Options pero para los códigos de barras EAN de 8 dígitos. proporcionar 7 dígenes de carga (la biblioteca cuenta el 8), o establecer allow_check_digit_input=True para la 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))

Opciones y UpceOptions

UpcaOptions y UpceOptions Sigue lo mismo allow_check_digit_input El modelo como opción EAN. UpceOptions También tiene a number_system propiedad .

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

Propiedades de base en codificación

Todas las clases de opción heredan estas propiedades de EncodeOptions:

PropertyTypeDescription
gs1_enabled`boolNone`
eci_assignment_number`intNone`

Consejos y mejores prácticas

  • Uso Code128EncodeMode.AUTO a menos que tenga una razón específica para restringir los conjuntos de caracteres, produce el código de barras más corto para cualquier entrada.
  • Sitio QrErrorCorrectionLevel.H para los códigos QR que se imprimirán en superficies susceptibles de dañar.
  • Deja que la biblioteca computa para verificar los números por defecto — sólo se establece allow_check_digit_input=True cuando reciba datos pre-validados de otro sistema.
  • Uso QrEncodeMode.NUMERIC para digitalizar sólo los datos QR para minimizar el tamaño del símbolo.

Problemas comunes

IssueCauseFixado
InvalidInputError El código 39La entrada contiene letras de la bajaSitio full_ascii=True En el Code39Options
El código QR es demasiado grande.Versión establecida demasiado baja para la longitud de datosEliminar explicitamente version o aumentarlo
El número de control en EAN-13 es incorrecto.13-digit input without allow_check_digit_input=TruePasar 12 dígitos (auto) o definir la opción para True
SymbologyNotFoundErrorEl nombre de la simbología en el generate()Utilice uno de: code128, code39, ean13, ean8, qr, upca, upce

See Also

 Español