Um código QR suíço também é conhecido como Swiss QR Bill. Foi desenvolvido para automatizar pagamentos digitais. Podemos codificar facilmente todas as informações de pagamento necessárias para acionar os pagamentos no QR Code suíço. O código QR suíço contém uma cruz suíça no meio. Neste artigo, aprenderemos como gerar um QR Code suíço usando Java. Além disso, também aprenderemos como decodificar e ler informações de pagamento de um código QR suíço de forma programática.
Os seguintes tópicos serão abordados neste artigo:
- API Java para gerar e ler código QR suíço
- Gerar código QR suíço
- Personalize o código QR suíço
- Leia o código QR suíço
API Java para gerar e ler código QR suíço
Para gerar e ler códigos QR suíços, usaremos a API Aspose.BarCode for Java. Ele fornece classes SwissQRBill e SwissQRCodetext oferecendo várias propriedades para trabalhar com códigos QR suíços. A classe SwissQRBill permite obter ou configurar dados de cobrança e pagamento, como informações da conta, valor, moeda e detalhes do credor. A classe SwissQRCodetext permite a codificação e decodificação das informações SwissQRBill incorporadas ao código QR suíço.
A API fornece a classe ComplexBarcodeGenerator para gerar imagens de códigos de barras complexos, como códigos QR suíços. A classe BarCodeReader da API permite ler os códigos de barras do DecodeType especificado. A classe BarCodeResult da API armazena os dados de código de barras reconhecidos, como tipo de código de barras e texto do código. Além disso, é uma API rica em recursos que permite gerar, digitalizar e ler uma ampla variedade de simbologias de código de barras.
Faça o download do JAR da API ou adicione a seguinte configuração pom.xml em um aplicativo Java baseado em Maven.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-barcode</artifactId>
<version>22.5</version>
</dependency>
Gerar código QR suíço em Java
Podemos gerar um código QR suíço seguindo as etapas abaixo:
- Crie uma instância da classe SwissQRCodetext.
- Defina várias propriedades do SwissQRBill, como Versão, Conta, Valor, Moeda, Referência, etc.
- Inicialize os objetos da classe Endereço e defina os detalhes do Credor e do Devedor.
- Depois disso, crie uma instância da classe ComplexBarcodeGenerator com o objeto SwissQRCodetext.
- Por fim, chame o método save() para salvar a imagem no caminho de arquivo fornecido.
A amostra de código a seguir mostra como gerar um código QR suíço usando Java.
// Este exemplo de código demonstra como gerar um código QR suíço
// Criar fatura QR suíça
SwissQRCodetext swissQRCode = new SwissQRCodetext();
swissQRCode.getBill().setVersion(QrBillStandardVersion.V2_0);
swissQRCode.getBill().setAccount("CH4431999123000889012");
swissQRCode.getBill().setAmount(1000.25);
swissQRCode.getBill().setCurrency("CHF");
swissQRCode.getBill().setReference("210000000003139471430009017");
// Endereço do credor
Address creditorAddress = new Address();
creditorAddress.setName("Muster & Söhne");
creditorAddress.setStreet("Musterstrasse");
creditorAddress.setHouseNo("12b");
creditorAddress.setPostalCode("8200");
creditorAddress.setTown("Zürich");
creditorAddress.setCountryCode("CH");
swissQRCode.getBill().setCreditor(creditorAddress);
// Endereço do devedor
Address debtorAddress = new Address();
debtorAddress.setName("Muster AG");
debtorAddress.setStreet("Musterstrasse");
debtorAddress.setHouseNo("1");
debtorAddress.setPostalCode("3030");
debtorAddress.setTown("Bern");
debtorAddress.setCountryCode("CH");
swissQRCode.getBill().setDebtor(debtorAddress);
// Gerar fatura QR suíça
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);
// Salve a imagem do código de barras
generator.save("SwissQRBill.png");
Personalize o código QR suíço em Java
Podemos personalizar a aparência de um código QR suíço seguindo as etapas abaixo:
- Crie uma instância da classe SwissQRCodetext.
- Defina várias propriedades do SwissQRBill, como Versão, Conta, Valor, Moeda, Referência, etc.
- Inicialize os objetos da classe Endereço e defina os detalhes do Credor e do Devedor.
- Crie uma instância da classe ComplexBarcodeGenerator com o objeto SwissQRCodetext.
- Depois disso, defina vários parâmetros de código de barras, como largura da imagem, codificação, cor de fundo, resolução, borda, etc.
- Finalmente, chame o método save() para gerar o código. Leva o caminho do arquivo de imagem e BarCodeImageFormat como argumentos.
A amostra de código a seguir mostra como personalizar um código QR suíço usando Java.
// Este exemplo de código demonstra como personalizar a aparência de um código QR suíço
// Criar fatura QR suíça
SwissQRCodetext swissQRCode = new SwissQRCodetext();
swissQRCode.getBill().setVersion(QrBillStandardVersion.V2_0);
swissQRCode.getBill().setAccount("CH4431999123000889012");
swissQRCode.getBill().setAmount(1000.25);
swissQRCode.getBill().setCurrency("CHF");
swissQRCode.getBill().setReference("210000000003139471430009017");
// Endereço do credor
Address creditorAddress = new Address();
creditorAddress.setName("Muster & Söhne");
creditorAddress.setStreet("Musterstrasse");
creditorAddress.setHouseNo("12b");
creditorAddress.setPostalCode("8200");
creditorAddress.setTown("Zürich");
creditorAddress.setCountryCode("CH");
swissQRCode.getBill().setCreditor(creditorAddress);
// Endereço do devedor
Address debtorAddress = new Address();
debtorAddress.setName("Muster AG");
debtorAddress.setStreet("Musterstrasse");
debtorAddress.setHouseNo("1");
debtorAddress.setPostalCode("3030");
debtorAddress.setTown("Bern");
debtorAddress.setCountryCode("CH");
swissQRCode.getBill().setDebtor(debtorAddress);
// Gerar fatura QR suíça
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);
// Definir tamanho da imagem
generator.getParameters().getBarcode().getXDimension().setPixels(4);
// Definir codificação
generator.getParameters().getBarcode().getQR().setQrEncodeMode(QREncodeMode.ECI_ENCODING);
generator.getParameters().getBarcode().getQR().setQrECIEncoding(ECIEncodings.UTF8);
// Definir cor de fundo
generator.getParameters().setBackColor(Color.RED);
// Definir resolução de imagem
generator.getParameters().setResolution(300);
// Definir borda
generator.getParameters().getBorder().getColor().brighter();
generator.getParameters().getBorder().setDashStyle(BorderDashStyle.SOLID);
generator.getParameters().getBorder().setColor(Color.BLUE);
generator.getParameters().getBorder().setVisible(true);
generator.getParameters().getBorder().getWidth().setPoint(4);
// Salve a imagem do código de barras como JPEG
generator.save("SwissQRBill.jpg", BarCodeImageFormat.JPEG);
Leia o código QR suíço em Java
Podemos ler códigos de barras de uma imagem seguindo as etapas abaixo:
- Primeiramente, carregue uma imagem usando a classe BarCodeReader.
- Obtenha resultados de reconhecimento no objeto da classe BarCodeResult usando o método readBarCodes().
- Percorra os resultados e decodifique o código QR suíço usando o método tryDecodeSwissQR().
- Finalmente, leia o SwissQRCodetext e mostre os dados.
O exemplo de código a seguir mostra como ler um código QR suíço de uma imagem usando Java.
// Este exemplo de código demonstra como detectar, decodificar e ler um código QR suíço
// Reconhecer o código QR suíço
BarCodeReader reader = new BarCodeReader("SwissQRBill.png", DecodeType.QR);
for (BarCodeResult barcodeResult : reader.readBarCodes())
{
// Tente decodificar o código QR suíço
SwissQRCodetext swissResult = ComplexCodetextReader.tryDecodeSwissQR(barcodeResult.getCodeText());
if (null != swissResult)
{
System.out.println("Version: " + swissResult.getBill().getVersion());
System.out.println("Account: " + swissResult.getBill().getAccount());
System.out.println("Amount: " + swissResult.getBill().getAmount());
System.out.println("Currency: " + swissResult.getBill().getCurrency());
System.out.println("Reference: " + swissResult.getBill().getReference());
System.out.println("Creditor Name: " + swissResult.getBill().getCreditor().getName());
System.out.println("Creditor Street: " + swissResult.getBill().getCreditor().getStreet());
System.out.println("Creditor House: " + swissResult.getBill().getCreditor().getHouseNo());
System.out.println("Creditor Postal Code: " + swissResult.getBill().getCreditor().getPostalCode());
System.out.println("Creditor Town: " + swissResult.getBill().getCreditor().getTown());
System.out.println("Creditor Country: " + swissResult.getBill().getCreditor().getCountryCode());
System.out.println("Debtor Name: " + swissResult.getBill().getDebtor().getName());
System.out.println("Debtor Street: " + swissResult.getBill().getDebtor().getStreet());
System.out.println("Debtor House: " + swissResult.getBill().getDebtor().getHouseNo());
System.out.println("Debtor Postal Code: " + swissResult.getBill().getDebtor().getPostalCode());
System.out.println("Debtor Town: " + swissResult.getBill().getDebtor().getTown());
System.out.println("Debtor Country: " + swissResult.getBill().getDebtor().getCountryCode());
}
}
Version: V2_0
Account: CH4431999123000889012
Amount: 1000.25
Currency: CHF
Reference: 210000000003139471430009017
Creditor Name: Muster & Söhne
Creditor Street: Musterstrasse
Creditor House: 12b
Creditor Postal Code: 8200
Creditor Town: Zürich
Creditor Country: CH
Debtor Name: Muster AG
Debtor Street: Musterstrasse
Debtor House: 1
Debtor Postal Code: 3030
Debtor Town: Bern
Debtor Country: CH
Obtenha uma licença gratuita
Você pode obter uma licença temporária gratuita para experimentar a biblioteca sem limitações de avaliação.
Conclusão
Neste artigo, aprendemos como:
- gerar a imagem Swiss QR Bill programaticamente;
- definir o tamanho e a resolução da imagem do código QR;
- defina a borda e a cor do verso do código QR;
- detectar um código QR suíço de uma imagem;
- leia os detalhes de pagamento do código QR suíço em Java.
Além disso, você pode aprender mais sobre Aspose.BarCode para API Java usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.