Genera codice QR svizzero utilizzando Java

Un codice QR svizzero è anche noto come Swiss QR Bill. È stato sviluppato per automatizzare i pagamenti digitali. Possiamo facilmente codificare tutte le informazioni di pagamento necessarie per attivare i pagamenti nel codice QR svizzero. Il codice QR svizzero contiene una croce svizzera al centro. In questo articolo impareremo come generare un codice QR svizzero utilizzando Java. Inoltre, impareremo anche come decodificare e leggere le informazioni di pagamento da un codice QR svizzero in modo programmatico.

In questo articolo verranno trattati i seguenti argomenti:

API Java per generare e leggere codice QR svizzero

Per generare e leggere codici QR svizzeri, utilizzeremo l’API Aspose.BarCode for Java. Fornisce classi SwissQRBill e SwissQRCodetext che offrono varie proprietà per lavorare con i codici QR svizzeri. La classe SwissQRBill consente di ottenere o impostare dati di fatturazione e pagamento, come informazioni sull’account, importo, valuta e dettagli del creditore. La classe SwissQRCodetext consente la codifica e la decodifica delle informazioni SwissQRBill incorporate nel codice QR svizzero.

L’API fornisce la classe ComplexBarcodeGenerator per la generazione di immagini di codici a barre complessi, come i codici QR svizzeri. La classe BarCodeReader dell’API consente di leggere i codici a barre del DecodeType specificato. La classe BarCodeResult dell’API memorizza i dati del codice a barre riconosciuto, come il tipo di codice a barre e il testo del codice. Inoltre, è un’API ricca di funzionalità che ti consente di generare, scansionare e leggere un’ampia gamma di simbole di codici a barre.

Si prega di scaricare il JAR dell’API o aggiungere la seguente configurazione pom.xml in un’applicazione Java basata su 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>

Genera codice QR svizzero in Java

Possiamo generare un codice QR svizzero seguendo i passaggi indicati di seguito:

  • Crea un’istanza della classe SwissQRCodetext.
  • Imposta varie proprietà di SwissQRBill come Versione, Conto, Importo, Valuta, Riferimento, ecc.
  • Inizializzare gli oggetti della classe Address e impostare i dettagli del creditore e del debitore.
  • Successivamente, crea un’istanza della classe ComplexBarcodeGenerator con l’oggetto SwissQRCodetext.
  • Infine, chiama il metodo save() per salvare l’immagine nel percorso del file specificato.

L’esempio di codice seguente mostra come generare un codice QR svizzero utilizzando Java.

// Questo esempio di codice mostra come generare un codice QR svizzero
// Crea fattura QR svizzera
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");

// Indirizzo del creditore
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);

// Indirizzo del debitore
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);

// Genera fattura QR svizzera
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);

// Salva l'immagine del codice a barre
generator.save("SwissQRBill.png");

Personalizza il codice QR svizzero in Java

Possiamo personalizzare l’aspetto di un codice QR svizzero seguendo i passaggi indicati di seguito:

  • Crea un’istanza della classe SwissQRCodetext.
  • Imposta varie proprietà di SwissQRBill come Versione, Conto, Importo, Valuta, Riferimento, ecc.
  • Inizializzare gli oggetti della classe Address e impostare i dettagli del creditore e del debitore.
  • Crea un’istanza della classe ComplexBarcodeGenerator con l’oggetto SwissQRCodetext.
  • Successivamente, imposta vari parametri del codice a barre come larghezza dell’immagine, codifica, colore del retro, risoluzione, bordo, ecc.
  • Infine, chiama il metodo save() per generare il codice. Prende il percorso del file immagine e BarCodeImageFormat come argomenti.

L’esempio di codice seguente mostra come personalizzare un codice QR svizzero utilizzando Java.

// Questo esempio di codice mostra come personalizzare l'aspetto di un codice QR svizzero
// Crea fattura QR svizzera
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");

// Indirizzo del creditore
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);

// Indirizzo del debitore
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);

// Genera fattura QR svizzera
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);

// Imposta la dimensione dell'immagine
generator.getParameters().getBarcode().getXDimension().setPixels(4);

// Imposta codifica
generator.getParameters().getBarcode().getQR().setQrEncodeMode(QREncodeMode.ECI_ENCODING);
generator.getParameters().getBarcode().getQR().setQrECIEncoding(ECIEncodings.UTF8);

// Imposta il colore di sfondo
generator.getParameters().setBackColor(Color.RED);

// Imposta la risoluzione dell'immagine
generator.getParameters().setResolution(300);

// Imposta il confine
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);

// Salva l'immagine del codice a barre come JPEG
generator.save("SwissQRBill.jpg", BarCodeImageFormat.JPEG);
Personalizza il codice QR svizzero in Java

Personalizza il codice QR svizzero in Java

Leggi il codice QR svizzero in Java

Possiamo leggere i codici a barre da un’immagine seguendo i passaggi indicati di seguito:

  • Innanzitutto, carica un’immagine utilizzando la classe BarCodeReader.
  • Ottieni risultati di riconoscimento nell’oggetto classe BarCodeResult utilizzando il metodo readBarCodes().
  • Scorri i risultati e decodifica il codice QR svizzero utilizzando il metodo tryDecodeSwissQR().
  • Infine, leggi lo SwissQRCodetext e mostra i dati.

L’esempio di codice seguente mostra come leggere un codice QR svizzero da un’immagine utilizzando Java.

// Questo esempio di codice mostra come rilevare, decodificare e leggere un codice QR svizzero
// Riconosci il codice QR svizzero
BarCodeReader reader = new BarCodeReader("SwissQRBill.png", DecodeType.QR);

for (BarCodeResult barcodeResult : reader.readBarCodes())
{
    // Prova a decodificare il codice QR svizzero
    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 

Ottieni una licenza gratuita

Puoi ottenere una licenza temporanea gratuita per provare la libreria senza limitazioni di valutazione.

Conclusione

In questo articolo abbiamo imparato a:

  • generare l’immagine della fattura QR svizzera in modo programmatico;
  • impostare la dimensione e la risoluzione dell’immagine del codice QR;
  • impostare il colore del bordo e del retro del codice QR;
  • rilevare un codice QR svizzero da un’immagine;
  • leggi i dettagli di pagamento dal QR Code svizzero in Java.

Inoltre, puoi saperne di più su Aspose.BarCode per l’API Java usando la documentazione. In caso di ambiguità, non esitare a contattarci sul forum.

Guarda anche