Introdução
Aspose.BarCode FOSS para Python fornece classes de opções por simbologia que controlam o comportamento de codificação em todos os sete formatos de código de barras suportados. Cada classe de opção herda de EncodeOptions e adiciona propriedades específicas à sua simbologia — modos de codificação Code 128, seleção ASCII Code 39, níveis de correção de erro QR e tratamento de dígito verificador EAN/UPC.
Esta postagem cobre cada classe de opção, suas propriedades e exemplos de código funcionais. As classes estão disponíveis no pacote de nível superior aspose_barcode_foss.
Principais Recursos
Modos de Codificação Code 128
Code128Options controla quais conjuntos de caracteres Code 128 o codificador usa. A propriedade encode_mode aceita um valor enum Code128EncodeMode: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC ou CODE_BC. AUTO seleciona automaticamente a codificação mais compacta. CODE_C é otimizado para dados apenas numéricos (pares de dígitos codificados como pontos de código únicos).
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code128Options, Code128EncodeMode
bc = barcode.code128(
"1234567890",
encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
svg = bc.to_svg()
Code 128 também suporta as propriedades gs1_enabled e eci_assignment_number herdadas de EncodeOptions para GS1 e metadados ECI.
Code 39 Codificação
Code39Options controla se o codificador usa o conjunto de 43 caracteres base ou a extensão Full ASCII. Defina full_ascii=True para habilitar o modo Full ASCII, que codifica toda a faixa ASCII de 128 caracteres usando pares de deslocamento. A propriedade opcional add_check_digit adiciona um dígito de verificação módulo-43.
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code39Options
bc = barcode.code39(
"Hello",
encode=Code39Options(full_ascii=True, add_check_digit=True),
)
svg = bc.to_svg()
QR Code Configuração
QrOptions oferece o conjunto de configuração mais rico entre as simbologias suportadas:
error_correction_level:QrErrorCorrectionLevel.L(7%),.M(15%),.Q(25%),.H(30%)encoding_mode:QrEncodeMode.AUTO,.NUMERIC,.ALPHANUMERIC,.BYTE,.KANJIversion: versão QR (1–40), controlando o tamanho do símbolomask: padrão de máscara (0–7) para seleção manual
import aspose_barcode_foss as barcode
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode
bc = barcode.qr(
"https://example.com/product/12345",
encode=QrOptions(
error_correction_level=QrErrorCorrectionLevel.Q,
encoding_mode=QrEncodeMode.BYTE,
),
)
png_bytes = bc.to_png()
Dígitos de Verificação do EAN e UPC
Ean13Options, Ean8Options, UpcaOptions e UpceOptions cada um tem uma propriedade allow_check_digit_input. Por padrão, a biblioteca calcula o dígito de verificação automaticamente a partir dos dados. Defina allow_check_digit_input=True se seus dados já incluírem o dígito de verificação.
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Ean13Options
# Automatic check digit (12 digits in, library appends the 13th)
bc = barcode.ean13("590123412345")
svg = bc.to_svg()
# Pre-computed check digit (13 digits, library validates)
bc2 = barcode.ean13(
"5901234123457",
encode=Ean13Options(allow_check_digit_input=True),
)
Opções de Renderização
RenderOptions se aplica a todas as simbologias e controla a saída visual. Passe-o para to_svg() ou to_png():
| Propriedade | Tipo | Descrição |
|---|---|---|
scale | float | Multiplicador de escala uniforme |
dpi | int | Resolução para saída PNG |
module_width | float | Largura de um módulo de código de barras |
module_height | float | Altura de um módulo de código de barras |
quiet_zone | float | Preenchimento em branco ao redor do código de barras |
foreground_color | str | Cor hexadecimal para barras (por exemplo, "#000000") |
background_color | str | Cor hexadecimal para fundo |
transparent_background | bool | Fundo transparente para PNG |
show_text | bool | Exibir texto legível abaixo do código de barras |
font_family | str | Fonte para texto legível |
font_size | float | Tamanho da fonte para texto legível por humanos |
import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions
bc = barcode.upca("01234567890")
png = bc.to_png(options=RenderOptions(
scale=3.0,
dpi=300,
foreground_color="#1a1a1a",
background_color="#ffffff",
show_text=True,
font_family="Courier New",
))
Tratamento de Erros
Toda a validação das opções de codificação ocorre no momento da análise. Se dados inválidos ou opções incompatíveis forem fornecidos, a biblioteca lança uma exceção tipada antes que qualquer codificação comece:
InvalidInputError— os dados contêm caracteres não suportados pela simbologiaEncodingError— a codificação falha (por exemplo, os dados excedem a capacidade)SymbologyNotFoundError— nome de simbologia não reconhecido passado paragenerate()UnsupportedCapabilityError— recurso solicitado não disponível para esta simbologia
Todas as classes de exceção herdam 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 códigos de barras com diferentes opções de codificação e salve-os:
import aspose_barcode_foss as barcode
from aspose_barcode_foss import (
Code128Options, Code128EncodeMode,
QrOptions, QrErrorCorrectionLevel,
RenderOptions,
)
# Code 128 in CODE_C mode (compact digit encoding)
c128 = barcode.code128(
"9876543210",
encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
with open("code128.svg", "w") as f:
f.write(c128.to_svg())
# QR with high error correction
qr = barcode.qr(
"https://example.com",
encode=QrOptions(error_correction_level=QrErrorCorrectionLevel.H),
)
with open("qr.png", "wb") as f:
f.write(qr.to_png(options=RenderOptions(scale=4.0)))
# EAN-13 with custom colors
ean = barcode.ean13("590123412345")
with open("ean13.svg", "w") as f:
f.write(ean.to_svg(options=RenderOptions(
foreground_color="#003366",
show_text=True,
)))
Formatos Suportados
| Symbology | Tipo | Classe de Opções | Propriedades Principais |
|---|---|---|---|
| Code 128 | 1D | Code128Options | encode_mode |
| Code 39 | 1D | Code39Options | full_ascii, add_check_digit |
| EAN-13 | 1D | Ean13Options | allow_check_digit_input |
| EAN-8 | 1D | Ean8Options | allow_check_digit_input |
| QR Code | 2D | QrOptions | error_correction_level, encoding_mode, version, mask |
| UPC-A | 1D | UpcaOptions | allow_check_digit_input |
| UPC-E | 1D | UpceOptions | allow_check_digit_input |
Formatos de saída:
| Formato | Extensão | Export |
|---|---|---|
| SVG | .svg | ✓ |
| PNG | .png | ✓ |
Código Aberto & Licenciamento
Aspose.BarCode FOSS para Python está licenciado sob MIT. O código-fonte está disponível em GitHub; compile a partir do código-fonte. Sem dependências nativas, sem telemetria, sem limites de uso.