Introdução
Estamos lançando Aspose.BarCode FOSS para Python, uma biblioteca pure-Python para gerar códigos de barras 1D e 2D compatíveis com padrões. O código-fonte está disponível em GitHub as aspose-barcode-foss, possui licença MIT e não tem dependências externas.
A biblioteca suporta sete simbologias: Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A e UPC-E. Cada código de barras é renderizado diretamente em SVG ou PNG. Não há extensões nativas, nenhum pacote de sistema a instalar e nenhum driver gráfico necessário — compile a partir do código-fonte no Windows, Linux e macOS.
Principais Recursos
Geração de Alto Nível API
A função de nível superior generate() aceita um nome de simbologia e uma string de dados, retornando um objeto Barcode. Auxiliares dedicados por simbologia — code128(), code39(), ean13(), ean8(), qr(), upca() e upce() — fornecem pontos de entrada com segurança de tipo para cada formato.
import aspose_barcode_foss as barcode
bc = barcode.generate("code128", "ABC123")
svg = bc.to_svg()
Opções de Codificação Específicas da Simbologia
Cada simbologia aceita uma classe de opções que controla o comportamento da codificação. Code128Options fornece encode_mode (AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC, CODE_BC). Code39Options suporta modos BASE e FULL_ASCII. QrOptions expõe error_correction_level (L, M, Q, H), version, mask e encoding_mode (AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI).
import aspose_barcode_foss as barcode
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel
bc = barcode.qr(
"https://example.com",
encode=QrOptions(error_correction_level=QrErrorCorrectionLevel.H),
)
png_bytes = bc.to_png()
Controles de Renderização
RenderOptions controla a saída visual: scale, dpi, module_width, module_height, quiet_zone, foreground_color, background_color, transparent_background, show_text, font_family e font_size. Tanto to_svg() quanto to_png() aceitam um parâmetro opcional RenderOptions.
import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions
bc = barcode.ean13("590123412345")
svg = bc.to_svg(options=RenderOptions(
scale=2.0,
foreground_color="#003366",
quiet_zone=10.0,
show_text=True,
))
Dígitos de Verificação Automáticos
EAN-13, EAN-8, UPC-A e UPC-E calculam os dígitos de verificação automaticamente a partir da string de dados. Você fornece apenas os dígitos da carga útil; a biblioteca adiciona o dígito de verificação correto durante a codificação.
Validação de Entrada
Cada simbologia possui um InputParser dedicado que valida os dados antes da codificação. Caracteres inválidos, comprimentos incorretos e violações de formato são detectados antecipadamente com exceções tipadas: InvalidInputError, EncodingError, SymbologyNotFoundError e UnsupportedCapabilityError — todas herdando de BarcodeError.
Início Rápido
git clone https://github.com/aspose-barcode-foss/Aspose.BarCode-FOSS-for-Python.git
cd Aspose.BarCode-FOSS-for-Python
pip install -e .Gere um Code 128 barcode e escreva o SVG em um arquivo:
import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions
bc = barcode.code128("Hello World")
svg = bc.to_svg(options=RenderOptions(show_text=True))
with open("barcode.svg", "w") as f:
f.write(svg)
Gere um QR code e salve-o como PNG:
import aspose_barcode_foss as barcode
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel
bc = barcode.qr(
"https://example.com",
encode=QrOptions(error_correction_level=QrErrorCorrectionLevel.H),
)
with open("qr.png", "wb") as f:
f.write(bc.to_png())
A biblioteca requer Python 3.12 ou posterior.
Formatos Compatíveis
| Symbology | Tipo | Dígito de Verificação | Classe Options |
|---|---|---|---|
| Code 128 | 1D | Integrado | Code128Options |
| Code 39 | 1D | Optional | Code39Options |
| EAN-13 | 1D | Automatic | Ean13Options |
| EAN-8 | 1D | Automatic | Ean8Options |
| QR Code | 2D | Integrado | QrOptions |
| UPC-A | 1D | Automatic | UpcaOptions |
| UPC-E | 1D | Automatic | UpceOptions |
Formatos de saída:
| Formato | Extensão | Export |
|---|---|---|
| SVG | .svg | ✓ |
| PNG | .png | ✓ |
Código Aberto & Licenciamento
A biblioteca tem licença MIT. Você pode usá-la em aplicações comerciais, modificá-la e redistribuí-la sem restrições. O código-fonte está disponível em GitHub. Não há níveis de uso, limites de tokens ou telemetria. Todo o processamento ocorre localmente.