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.
| Mode | Description |
|---|---|
AUTO | Selecciona el codificación más compacto automáticamente |
CODE_A | Los números, los caracteres de control y el número |
CODE_B | Cortes, Cores y Digitos |
CODE_C | Pais digitales: optimizado para los datos numéricos únicos |
CODE_AB | Cambios entre el código A y el Código B |
CODE_AC | Intercambios entre el código A y el Código C |
CODE_BC | Intercambios 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.
| Property | Type | Default | Description |
|---|---|---|---|
full_ascii | bool | None | Capacita el modo ASCII completo (128 caracteres por par de cambios) |
add_check_digit | bool | None | Añ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.
| Property | Type | Values |
|---|---|---|
error_correction_level | QrErrorCorrectionLevel | L (7 % de la población), M El 15 %), Q El 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 Controlar el control de los digitales para EAN-13 barcodes.
| Property | Type | Default | Description |
|---|---|---|---|
allow_check_digit_input | bool | None | Acceptar 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:
| Property | Type | Description |
|---|---|---|
gs1_enabled | `bool | None` |
eci_assignment_number | `int | None` |
Consejos y mejores prácticas
- Uso
Code128EncodeMode.AUTOa 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.Hpara 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=Truecuando reciba datos pre-validados de otro sistema. - Uso
QrEncodeMode.NUMERICpara digitalizar sólo los datos QR para minimizar el tamaño del símbolo.
Problemas comunes
| Issue | Cause | Fixado |
|---|---|---|
InvalidInputError El código 39 | La entrada contiene letras de la baja | Sitio full_ascii=True En el Code39Options |
| El código QR es demasiado grande. | Versión establecida demasiado baja para la longitud de datos | Eliminar explicitamente version o aumentarlo |
| El número de control en EAN-13 es incorrecto. | 13-digit input without allow_check_digit_input=True | Pasar 12 dígitos (auto) o definir la opción para True |
SymbologyNotFoundError | El nombre de la simbología en el generate() | Utilice uno de: code128, code39, ean13, ean8, qr, upca, upce |