Barcode de generación

Barcode de generación

Barcode de generación

El pipeline de generación de código de bar en Aspose.BarCode FOSS para Python sigue una arquitectura de tres etapas: El código de la parse → render.El nivel de la API (generate() y per-símbolos) orquestran estas etapas a través de los BarcodeService.


API de generación alta

La forma más sencilla de generar un código de barras es a través de las funciones de ayuda per-simbología:

import aspose_barcode_foss as barcode

bc_128 = barcode.code128("ABC123")
bc_qr = barcode.qr("https://example.com")
bc_ean = barcode.ean13("590123412345")
bc_upca = barcode.upca("01234567890")

Cada asistente devolverá a Barcode Objeto - llamadas to_svg() para la producción de SVG o to_png() para la producción de PNG.

El genérico generate() La función acepta una rama de nombre simbológico:

bc = barcode.generate("code128", "DATA")
svg = bc.to_svg()

Nombres de la simbología: "code128", "code39", "ean13", "ean8", "qr", "upca", "upce".


BarcodeService

BarcodeService coordina las tres etapas de la pipeline. se mantiene una SymbologyRegistry Y un OptionsResolver:

from aspose_barcode_foss import BarcodeService

# The default service is used by all helper functions
# You can create a custom service for testing or extension:
service = BarcodeService(registry=registry, options_resolver=resolver)
result = service.generate("code128", "DATA")

El generate() El método:

  1. Mirando hacia arriba el SymbologyDefinition Desde el Registro
  2. llame el InputParser.parse() Validar y normalizar las entradas
  3. llame el SymbologyEncoder.encode() Para producir un EncodedSymbol
  4. Volver a Barcode El símbolo y su perfil

SymbologyRegistry

SymbologyRegistry Las tiendas SymbologyDefinition Objetos en los que se encuentran nombres canónicos y alias:

MethodDescription
get_definition(name)Recibe una definición de simbología completa
get_parser(name)Obtenga el InputParser Para una simbología
get_encoder(name)Obtenga el SymbologyEncoder Para una simbología
get_profile(name)Obtenga el SymbologyProfile con defectos
get_text_policy(name)Obtenga el TextLayoutPolicy Para el rendimiento de texto
register(definition)Registrar una nueva SymbologyDefinition

EncoderRegistry es un alias compatible con el SymbologyRegistry.


SymbologyDefinition

A SymbologyDefinition Todos los componentes necesarios para apoyar una simbología:

PropertyTypeDescription
namestrIdentificador de la simbología canónica
parserInputParserValida y normaliza los datos de entrada
encoderSymbologyEncoderCódigo de datos en una matriz modular
profileSymbologyProfileDefectos, capacidades y política de texto
aliasestuple[str, ...]Nombres alternativos para la búsqueda

EncodedSymbol

El EncodedSymbol La versión de un encoder contiene:

  • matrix - A ModuleMatrix con la red de módulos lógicos del código de barras
  • metadata - A SymbolMetadata con nombre de simbología, texto de muestra y detalles de codificación
bc = barcode.code128("TEST")
symbol = bc.symbol

print(f"Matrix: {symbol.matrix.width}x{symbol.matrix.height}")
print(f"Display text: {symbol.metadata.display_text}")
print(f"Symbology: {symbol.metadata.symbology}")

ModuleMatrix proporciona a get(x, y) El método que devolve el valor del módulo en una posición dada.


NormalizedPayload

El NormalizedPayload Es la representación intermedia entre pars y codificación:

PropertyDescription
symbologyNombre de la simbología canónica
dataLos datos de entrada (str o bytes)
input_kindCómo se clasificó la entrada
code128_encode_modeModo de código 128 (si se aplica)
code39_encode_modeModo de código 39 (si se aplica)
qr_error_correction_levelCorrección de error QR (si se aplica)
qr_versionVersión QR (si se aplica)
qr_encoding_modeModo de codificación QR (si se aplica)

OptionsResolver

OptionsResolver combina las opciones de rendimiento ofrecidas por el usuario con defectos simbológicos:

MethodDescription
resolve(profile, options)Producir a ResolvedRenderOptions mediante la combinación de opciones del usuario con defectos de perfil
merge_options(earlier, later)Muerte dos RenderOptions (Los valores más tardíos se superan)
coerce_options(options)Normalizar las opciones crudas en el RenderOptions

Consejos y mejores prácticas

  • El uso de los sistemas de la infección (code128(), qr(),etc.) en lugar de que se generate() para la seguridad de tipo - se aseguran que se utiliza la clase de opciones correcta.
  • El Barcode.symbol La propiedad ofrece acceso directo a la EncodedSymbol para renderización o análisis personalizados.
  • BarcodeService Es estatisticamente — una instancia puede generar códigos de barras a través de varias filas.
  • Catch BarcodeError como clase de base para tratar todas las excepciones relacionadas con el código de barras en un solo bloque.

Problemas comunes

IssueCauseFixado
SymbologyNotFoundErrorNombre no registrado en SymbologyRegistryControlar el espellido; usar nombres canónicos
InvalidInputErrorLos datos violan los requisitos de la simbologíaVerificar el conjunto de caracteres y los requisitos de longitud
Vacación de SVGNo hay módulos codificadosVerificar los datos no son vacíos y validos para la simbología.

See Also

 Español