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:

  1. Importe o namespace generation de aspose.barcode.
  2. Prepare o texto de carga útil do Royal Mail que você deseja codificar.
  3. Crie um objeto BarcodeGenerator.
  4. Defina o tipo de código de barras como generation.EncodeTypes.QR.
  5. 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:

  1. Importe o namespace barcoderecognition de aspose.barcode.
  2. Crie uma instância BarCodeReader e passe o caminho da imagem do código QR.
  3. Defina o tipo de código de barras como br.DecodeType.QR.
  4. Chame read_bar_codes() para extrair os resultados do código de barras.
  5. 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.

FormatoCaso de Uso
PNGSaída sem perdas para impressão e digitalização
JPGArquivos menores onde uma leve compressão é aceitável
BMPSaída bitmap simples para sistemas legados
GIFSaída de imagem leve para casos de uso básicos
TIFFFluxos 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:

APIObjetivo
generation.BarcodeGeneratorGera imagens de código de barras.
generation.EncodeTypes.QREspecifica QR Code como o tipo de código de barras para geração.
generation.BarCodeImageFormat.PNGSalva a imagem de código de barras gerada como PNG.
br.BarCodeReaderLê imagens de código de barras.
br.DecodeType.QREspecifica 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_textObtém o texto decodificado do código de barras.
result.code_type_nameObté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?
    Use generation.BarcodeGenerator com generation.EncodeTypes.QR, passe o texto de carga útil relacionado ao Royal Mail e salve a saída usando generator.save().

  • Como ler uma imagem de código QR da Royal Mail em Python?
    Use br.BarCodeReader(file_name, br.DecodeType.QR) e faça um loop pelos resultados retornados por read_bar_codes().

  • Qual propriedade retorna o texto decodificado do QR code?
    Use result.code_text para 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.

Leia Mais