Gerar códigos QR é uma necessidade comum em aplicações de correio, transporte e logística. Se sua aplicação Python precisar criar um código QR que contenha dados relacionados ao Royal Mail, como um valor de rastreamento, valor de roteamento, código postal ou uma carga postal personalizada, você pode usar Aspose.BarCode for Python via .NET para gerar a imagem QR e lê‑la de volta para verificação.
Neste artigo, criaremos um código QR Royal Mail em Python e, em seguida, decodificaremos a imagem do código QR gerada. Os exemplos de código são divididos em duas seções claras: uma para geração de código QR e outra para leitura de código QR.
Nota: Neste artigo, “Royal Mail QR code” significa um QR Code padrão que armazena dados de carga relacionados ao Royal Mail. Se você precisar do Royal Mail Mailmark, esse é um tipo diferente de código de barras postal e requer uma estrutura de dados Mailmark específica.
Instalar Aspose.BarCode for Python via .NET
Instale o pacote Aspose.BarCode do PyPI usando o seguinte comando:
pip install aspose-barcode-for-python-via-net
Após a instalação, você pode usar a API de geração para criar imagens de código de barras e a API de reconhecimento para ler imagens de código de barras.
Etapas para gerar um código QR da Royal Mail em Python
Siga estas etapas para gerar um código QR da Royal Mail:
- Importe o namespace
generationdeaspose.barcode. - Prepare o texto de carga útil do Royal Mail que você deseja codificar.
- Crie um objeto
BarcodeGenerator. - Defina o tipo de código de barras como
generation.EncodeTypes.QR. - Salve a imagem do QR code gerada usando
generation.BarCodeImageFormat.PNG.
Gerar código QR Royal Mail em Python
O exemplo de código a seguir mostra como gerar um código QR Royal Mail e salvá‑lo como uma imagem PNG.
from aspose.barcode import generation
# Data to encode in the QR code
# Replace this with your actual Royal Mail payload / tracking / label data
royal_mail_data = "ROYALMAIL|TRACKING=AA123456789GB|POSTCODE=SW1A1AA"
# Generate Royal Mail QR Code
file_name = "royal_mail_qr.png"
generator = generation.BarcodeGenerator(
generation.EncodeTypes.QR,
royal_mail_data
)
generator.save(file_name, generation.BarCodeImageFormat.PNG)
print("QR Code generated:", file_name)
Neste exemplo, a classe BarcodeGenerator cria um código QR a partir do texto fornecido. O valor generation.EncodeTypes.QR especifica que o código de barras de saída deve ser um QR Code. Finalmente, o método save() exporta a imagem do código de barras gerado como um arquivo PNG.
Você pode substituir o valor de exemplo de royal_mail_data pelo seu payload real do Royal Mail. Por exemplo, você pode codificar um número de rastreamento, identificador de etiqueta, código postal ou outro valor postal necessário para sua aplicação.
Etapas para Ler um Código QR da Royal Mail em Python
Depois de gerar o código QR, você pode lê‑lo novamente para verificar se os dados codificados estão corretos. Siga estas etapas:
- Importe o namespace
barcoderecognitiondeaspose.barcode. - Crie uma instância
BarCodeReadere passe o caminho da imagem do código QR. - Defina o tipo de código de barras como
br.DecodeType.QR. - Chame
read_bar_codes()para extrair os resultados do código de barras. - Leia o texto decodificado da propriedade
code_text.
Ler código QR Royal Mail em Python
O exemplo de código a seguir mostra como ler a imagem do código QR do Royal Mail gerada.
from aspose.barcode import barcoderecognition as br
# Read Royal Mail QR Code
file_name = "royal_mail_qr.png"
reader = br.BarCodeReader(file_name, br.DecodeType.QR)
for result in reader.read_bar_codes():
print("Barcode Type:", result.code_type_name)
print("Barcode Data:", result.code_text)
A classe BarCodeReader lê a imagem do código de barras a partir do caminho de arquivo especificado. O valor br.DecodeType.QR indica ao leitor que ele deve procurar códigos QR. O método read_bar_codes() retorna os resultados dos códigos de barras detectados, e cada resultado expõe o tipo de código de barras e o texto decodificado através de code_type_name e code_text.
Exemplo Completo de Geração e Leitura
Você também pode combinar geração e reconhecimento em um único script. Isso é útil quando você deseja validar o código QR gerado imediatamente após criá‑lo.
from aspose.barcode import generation
from aspose.barcode import barcoderecognition as br
# Data to encode in the QR code
# Replace this with your actual Royal Mail payload / tracking / label data
royal_mail_data = "ROYALMAIL|TRACKING=AA123456789GB|POSTCODE=SW1A1AA"
# 1) Generate Royal Mail QR Code
file_name = "royal_mail_qr.png"
generator = generation.BarcodeGenerator(
generation.EncodeTypes.QR,
royal_mail_data
)
generator.save(file_name, generation.BarCodeImageFormat.PNG)
print("QR Code generated:", file_name)
# 2) Read Royal Mail QR Code
reader = br.BarCodeReader(file_name, br.DecodeType.QR)
for result in reader.read_bar_codes():
print("Barcode Type:", result.code_type_name)
print("Barcode Data:", result.code_text)
Este script completo primeiro cria uma imagem de código QR chamada royal_mail_qr.png. Em seguida, carrega a mesma imagem com BarCodeReader, decodifica o código QR e imprime o tipo de código de barras e os dados codificados.
Validar os Dados do QR Code Decodificado
Para fluxos de trabalho de correio e envio, é uma boa prática validar cada QR code gerado antes de imprimi‑lo ou enviá‑lo para outro sistema. Você pode comparar o resultado decodificado com a carga útil original:
for result in reader.read_bar_codes():
if result.code_text == royal_mail_data:
print("QR code validation passed.")
else:
print("QR code validation failed.")
Esta etapa simples de validação ajuda a confirmar que a imagem QR gerada contém os mesmos dados que sua aplicação pretendia codificar.
Manipulando Diferentes Formatos de Imagem de Código QR
Os exemplos acima salvam o código QR como PNG porque PNG é um formato de imagem sem perdas e geralmente é uma boa escolha para fluxos de trabalho de impressão e digitalização. Aspose.BarCode também pode salvar imagens de código de barras em outros formatos suportados quando necessário.
| Formato | Caso de Uso |
|---|---|
| PNG | Saída sem perdas para impressão e digitalização |
| JPG | Arquivos menores onde uma leve compressão é aceitável |
| BMP | Saída bitmap simples para sistemas legados |
| GIF | Saída de imagem leve para casos de uso básicos |
| TIFF | Fluxos de trabalho de arquivamento ou documentos de alta resolução |
Para alterar o formato da imagem, atualize o segundo argumento do método save(). Por exemplo, use o valor correspondente de generation.BarCodeImageFormat.
Melhores Práticas para Fluxos de Trabalho de Código QR da Royal Mail
- Use o formato de payload exato exigido pelo seu fluxo de trabalho da Royal Mail, envio ou geração de etiquetas.
- Mantenha a imagem do QR code clara, com alto contraste e livre de distorções.
- Prefira formatos sem perdas, como PNG, para etiquetas impressas.
- Decodifique a imagem gerada após a criação para verificar o payload codificado.
- Armazene tanto o payload original quanto o resultado decodificado nos logs ao solucionar problemas de etiquetas.
Classes de API Comuns Usadas
As seguintes classes e valores do Aspose.BarCode for Python via .NET são usados neste artigo:
| API | Objetivo |
|---|---|
generation.BarcodeGenerator | Gera imagens de código de barras. |
generation.EncodeTypes.QR | Especifica QR Code como o tipo de código de barras para geração. |
generation.BarCodeImageFormat.PNG | Salva a imagem de código de barras gerada como PNG. |
br.BarCodeReader | Lê imagens de código de barras. |
br.DecodeType.QR | Especifica QR Code como o tipo de código de barras para reconhecimento. |
read_bar_codes() | Retorna os resultados de códigos de barras detectados na imagem. |
result.code_text | Obtém o texto decodificado do código de barras. |
result.code_type_name | Obtém o nome do tipo de código de barras detectado. |
Conclusão
Você pode gerar e ler códigos QR Royal Mail em Python com apenas algumas linhas de código usando Aspose.BarCode for Python via .NET. Use generation.BarcodeGenerator com generation.EncodeTypes.QR para criar o código QR, salve‑o com generation.BarCodeImageFormat.PNG e, em seguida, use br.BarCodeReader com br.DecodeType.QR para decodificar a imagem gerada.
Este fluxo de geração e reconhecimento é útil para validar códigos QR antes que sejam impressos em etiquetas postais, armazenados em sistemas de envio ou enviados para aplicativos logísticos subsequentes.
Perguntas Frequentes
Qual é a maneira mais fácil de gerar um código QR Royal Mail em Python?
Usegeneration.BarcodeGeneratorcomgeneration.EncodeTypes.QR, passe o texto de carga útil relacionado ao Royal Mail e salve a saída usandogenerator.save().Como ler uma imagem de código QR da Royal Mail em Python?
Usebr.BarCodeReader(file_name, br.DecodeType.QR)e faça um loop pelos resultados retornados porread_bar_codes().Qual propriedade retorna o texto decodificado do QR code?
Useresult.code_textpara obter o valor decodificado de cada resultado de reconhecimento de código de barras.Posso usar este código para Royal Mail Mailmark?
Não diretamente. Este artigo usa geração e reconhecimento padrão de QR Code. Royal Mail Mailmark é um tipo de código de barras postal separado com sua própria estrutura de dados necessária.
