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:
- Mirando hacia arriba el
SymbologyDefinitionDesde el Registro - llame el
InputParser.parse()Validar y normalizar las entradas - llame el
SymbologyEncoder.encode()Para producir unEncodedSymbol - Volver a
BarcodeEl símbolo y su perfil
SymbologyRegistry
SymbologyRegistry Las tiendas SymbologyDefinition Objetos en los que se encuentran nombres canónicos y alias:
| Method | Description |
|---|---|
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:
| Property | Type | Description |
|---|---|---|
name | str | Identificador de la simbología canónica |
parser | InputParser | Valida y normaliza los datos de entrada |
encoder | SymbologyEncoder | Código de datos en una matriz modular |
profile | SymbologyProfile | Defectos, capacidades y política de texto |
aliases | tuple[str, ...] | Nombres alternativos para la búsqueda |
EncodedSymbol
El EncodedSymbol La versión de un encoder contiene:
matrix- AModuleMatrixcon la red de módulos lógicos del código de barrasmetadata- ASymbolMetadatacon 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:
| Property | Description |
|---|---|
symbology | Nombre de la simbología canónica |
data | Los datos de entrada (str o bytes) |
input_kind | Cómo se clasificó la entrada |
code128_encode_mode | Modo de código 128 (si se aplica) |
code39_encode_mode | Modo de código 39 (si se aplica) |
qr_error_correction_level | Corrección de error QR (si se aplica) |
qr_version | Versión QR (si se aplica) |
qr_encoding_mode | Modo de codificación QR (si se aplica) |
OptionsResolver
OptionsResolver combina las opciones de rendimiento ofrecidas por el usuario con defectos simbológicos:
| Method | Description |
|---|---|
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 segenerate()para la seguridad de tipo - se aseguran que se utiliza la clase de opciones correcta. - El
Barcode.symbolLa propiedad ofrece acceso directo a laEncodedSymbolpara renderización o análisis personalizados. BarcodeServiceEs estatisticamente — una instancia puede generar códigos de barras a través de varias filas.- Catch
BarcodeErrorcomo clase de base para tratar todas las excepciones relacionadas con el código de barras en un solo bloque.
Problemas comunes
| Issue | Cause | Fixado |
|---|---|---|
SymbologyNotFoundError | Nombre no registrado en SymbologyRegistry | Controlar el espellido; usar nombres canónicos |
InvalidInputError | Los datos violan los requisitos de la simbología | Verificar el conjunto de caracteres y los requisitos de longitud |
| Vacación de SVG | No hay módulos codificados | Verificar los datos no son vacíos y validos para la simbología. |