Générer un code QR suisse avec Java

Un code QR suisse est également connu sous le nom de Swiss QR Bill. Il a été développé pour automatiser les paiements numériques. Nous pouvons facilement encoder toutes les informations de paiement nécessaires pour déclencher des paiements dans le Swiss QR Code. Le code QR suisse contient une croix suisse au milieu. Dans cet article, nous allons apprendre à générer un Swiss QR Code en Java. De plus, nous apprendrons également à décoder et à lire par programmation les informations de paiement d’un code QR suisse.

Les sujets suivants seront traités dans cet article :

API Java pour générer et lire le code QR suisse

Pour générer et lire les codes QR suisses, nous utiliserons l’API Aspose.BarCode for Java. Il fournit les classes SwissQRBill et SwissQRCodetext offrant diverses propriétés pour travailler avec les codes QR suisses. La classe SwissQRBill permet d’obtenir ou de définir des données de facturation et de paiement, telles que des informations sur le compte, le montant, la devise et les détails du créancier. La classe SwissQRCodetext permet l’encodage et le décodage des informations SwissQRBill intégrées dans le code QR suisse.

L’API fournit la classe ComplexBarcodeGenerator pour générer des images de codes-barres complexes, tels que les codes QR suisses. La classe BarCodeReader de l’API permet de lire les codes-barres du DecodeType spécifié. La classe BarCodeResult de l’API stocke les données de code-barres reconnues, telles que le type de code-barres et le texte du code. De plus, il s’agit d’une API riche en fonctionnalités qui vous permet de générer, de numériser et de lire un large éventail de symbologies de codes à barres.

Veuillez soit télécharger le JAR de l’API ou ajouter la configuration pom.xml suivante dans une application Java basée sur 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>

Générer un code QR suisse en Java

Nous pouvons générer un code QR suisse en suivant les étapes ci-dessous :

  • Créez une instance de la classe SwissQRCodetext.
  • Définissez diverses propriétés SwissQRBill telles que la version, le compte, le montant, la devise, la référence, etc.
  • Initialisez les objets de la classe Address et définissez les détails du créancier et du débiteur.
  • Après cela, créez une instance de la classe ComplexBarcodeGenerator avec l’objet SwissQRCodetext.
  • Enfin, appelez la méthode save() pour enregistrer l’image dans le chemin de fichier donné.

L’exemple de code suivant montre comment générer un code QR suisse à l’aide de Java.

// Cet exemple de code montre comment générer un code QR suisse
// Créer une facture QR suisse
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");

// Adresse du créancier
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);

// Adresse du débiteur
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);

// Générer une facture QR suisse
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);

// Enregistrer l'image du code-barres
generator.save("SwissQRBill.png");

Personnaliser Swiss QR Code en Java

Nous pouvons personnaliser l’apparence d’un code QR suisse en suivant les étapes ci-dessous :

  • Créez une instance de la classe SwissQRCodetext.
  • Définissez diverses propriétés SwissQRBill telles que la version, le compte, le montant, la devise, la référence, etc.
  • Initialisez les objets de la classe Address et définissez les détails du créancier et du débiteur.
  • Créez une instance de la classe ComplexBarcodeGenerator avec l’objet SwissQRCodetext.
  • Après cela, définissez divers paramètres de code-barres tels que la largeur de l’image, l’encodage, la couleur de fond, la résolution, la bordure, etc.
  • Enfin, appelez la méthode save() pour générer le code. Il prend le chemin du fichier image et BarCodeImageFormat comme arguments.

L’exemple de code suivant montre comment personnaliser un code QR suisse à l’aide de Java.

// Cet exemple de code montre comment personnaliser l'apparence d'un code QR suisse
// Créer une facture QR suisse
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");

// Adresse du créancier
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);

// Adresse du débiteur
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);

// Générer une facture QR suisse
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);

// Définir la taille de l'image
generator.getParameters().getBarcode().getXDimension().setPixels(4);

// Définir l'encodage
generator.getParameters().getBarcode().getQR().setQrEncodeMode(QREncodeMode.ECI_ENCODING);
generator.getParameters().getBarcode().getQR().setQrECIEncoding(ECIEncodings.UTF8);

// Définir la couleur d'arrière-plan
generator.getParameters().setBackColor(Color.RED);

// Définir la résolution de l'image
generator.getParameters().setResolution(300);

// Définir la bordure
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);

// Enregistrez l'image du code-barres au format JPEG
generator.save("SwissQRBill.jpg", BarCodeImageFormat.JPEG);
Personnaliser le Swiss QR Code en Java

Personnaliser Swiss QR Code en Java

Lire le code QR suisse en Java

Nous pouvons lire les codes-barres à partir d’une image en suivant les étapes ci-dessous :

  • Tout d’abord, chargez une image à l’aide de la classe BarCodeReader.
  • Obtenez les résultats de la reconnaissance dans l’objet de classe BarCodeResult à l’aide de la méthode readBarCodes().
  • Parcourez les résultats et décodez le code QR suisse à l’aide de la méthode tryDecodeSwissQR().
  • Enfin, lisez le texte SwissQRCode et affichez les données.

L’exemple de code suivant montre comment lire un code QR suisse à partir d’une image à l’aide de Java.

// Cet exemple de code montre comment détecter, décoder et lire un code QR suisse
// Reconnaître le code QR suisse
BarCodeReader reader = new BarCodeReader("SwissQRBill.png", DecodeType.QR);

for (BarCodeResult barcodeResult : reader.readBarCodes())
{
    // Essayez de décoder le Swiss QR Code
    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 

Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite pour essayer la bibliothèque sans limitation d’évaluation.

Conclusion

Dans cet article, nous avons appris à :

  • générer une image Swiss QR Bill par programmation ;
  • définir la taille et la résolution de l’image du code QR ;
  • définir la couleur de la bordure et du dos du code QR ;
  • détecter un code QR suisse à partir d’une image ;
  • lire les détails de paiement du Swiss QR Code en Java.

En outre, vous pouvez en savoir plus sur l’API Aspose.BarCode for Java en utilisant la documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur le forum.

Voir également