Generera schweizisk QR-kod med Java

En schweizisk QR-kod är också känd som Swiss QR Bill. Det utvecklades för att automatisera digitala betalningar. Vi kan enkelt koda all nödvändig betalningsinformation som krävs för att utlösa betalningar i den schweiziska QR-koden. Den schweiziska QR-koden innehåller ett schweizisk kors i mitten. I den här artikeln kommer vi att lära oss hur man genererar en schweizisk QR-kod med Java. Vidare kommer vi också att lära oss hur man avkodar och läser betalningsinformation från en schweizisk QR-kod programmatiskt.

Följande ämnen ska behandlas i den här artikeln:

Java API för att generera och läsa schweizisk QR-kod

För att generera och läsa schweiziska QR-koder kommer vi att använda Aspose.BarCode for Java API. Den tillhandahåller klasser SwissQRBill och SwissQRCodetext som erbjuder olika egenskaper för att fungera med schweiziska QR-koder. SwissQRBill-klassen gör det möjligt att hämta eller ställa in fakturerings- och betalningsdata, såsom kontoinformation, belopp, valuta och fordringsägare. SwissQRCodetext-klassen tillåter kodning och avkodning av SwissQRBill-informationen inbäddad i den schweiziska QR-koden.

API:et tillhandahåller klassen ComplexBarcodeGenerator för att generera bilder av komplexa streckkoder, såsom schweiziska QR-koder. Klassen BarCodeReader i API:t tillåter läsning av streckkoderna för den specificerade DecodeType. Klassen BarCodeResult i API:et lagrar de igenkända streckkodsdata, såsom streckkodstyp och kodtext. Dessutom är det ett funktionsrikt API som låter dig generera, skanna och läsa ett brett utbud av streckkodssymbologier.

Vänligen antingen ladda ner JAR för API:t eller lägg till följande pom.xml-konfiguration i en Maven-baserad Java-applikation.

<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>

Generera schweizisk QR-kod i Java

Vi kan generera en schweizisk QR-kod genom att följa stegen nedan:

  • Skapa en instans av klassen SwissQRCodetext.
  • Ställ in olika SwissQRBill-egenskaper som version, konto, belopp, valuta, referens, etc.
  • Initiera adressklassobjekten och ange borgenärs- och gäldenärsdetaljer.
  • Efter det skapar du en instans av ComplexBarcodeGenerator-klassen med SwissQRCodetext-objektet.
  • Till sist, anropa metoden save() för att spara bilden på den givna sökvägen.

Följande kodexempel visar hur man genererar en schweizisk QR-kod med Java.

// Detta kodexempel visar hur man genererar en schweizisk QR-kod
// Skapa schweizisk QR-räkning
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");

// Kreditgivarens adress
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);

// Gäldenärs adress
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);

// Generera schweizisk QR-räkning
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);

// Spara streckkodsbilden
generator.save("SwissQRBill.png");

Anpassa schweizisk QR-kod i Java

Vi kan anpassa utseendet på en schweizisk QR-kod genom att följa stegen nedan:

  • Skapa en instans av klassen SwissQRCodetext.
  • Ställ in olika SwissQRBill-egenskaper som version, konto, belopp, valuta, referens, etc.
  • Initiera adressklassobjekten och ange borgenärs- och gäldenärsdetaljer.
  • Skapa en instans av klassen ComplexBarcodeGenerator med objektet SwissQRCodetext.
  • Efter det ställer du in olika streckkodsparametrar som bildbredd, kodning, bakgrundsfärg, upplösning, ram, etc.
  • Till sist, anropa metoden save() för att generera koden. Den tar bildfilens sökväg och BarCodeImageFormat som argument.

Följande kodexempel visar hur man anpassar en schweizisk QR-kod med Java.

// Detta kodexempel visar hur man anpassar utseendet på en schweizisk QR-kod
// Skapa schweizisk QR-räkning
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");

// Kreditgivarens adress
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);

// Gäldenärens adress
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);

// Generera schweizisk QR-räkning
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);

// Ställ in bildstorlek
generator.getParameters().getBarcode().getXDimension().setPixels(4);

// Ställ in kodning
generator.getParameters().getBarcode().getQR().setQrEncodeMode(QREncodeMode.ECI_ENCODING);
generator.getParameters().getBarcode().getQR().setQrECIEncoding(ECIEncodings.UTF8);

// Ställ in bakgrundsfärg
generator.getParameters().setBackColor(Color.RED);

// Ställ in bildupplösning
generator.getParameters().setResolution(300);

// Ställ in gränsen
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);

// Spara streckkodsbilden som JPEG
generator.save("SwissQRBill.jpg", BarCodeImageFormat.JPEG);
Anpassa schweizisk QR-kod i Java

Anpassa schweizisk QR-kod i Java

Läs schweizisk QR-kod i Java

Vi kan läsa streckkoder från en bild genom att följa stegen nedan:

  • Först laddar du en bild med klassen BarCodeReader.
  • Få igenkänningsresultat i BarCodeResult-klassobjektet med metoden readBarCodes().
  • Gå igenom resultaten och avkoda den schweiziska QR-koden med metoden tryDecodeSwissQR().
  • Läs slutligen SwissQRCodetexten och visa data.

Följande kodexempel visar hur man läser en schweizisk QR-kod från en bild med Java.

// Detta kodexempel visar hur man upptäcker, avkodar och läser en schweizisk QR-kod
// Känn igen schweizisk QR-kod
BarCodeReader reader = new BarCodeReader("SwissQRBill.png", DecodeType.QR);

for (BarCodeResult barcodeResult : reader.readBarCodes())
{
    // Prova att avkoda schweizisk QR-kod
    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 

Skaffa en gratis licens

Du kan få en gratis tillfällig licens för att prova biblioteket utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har vi lärt oss hur man:

  • generera schweizisk QR Bill-bild programmatiskt;
  • ställ in QR-kodbildstorlek och upplösning;
  • ställ in kant- och bakfärgen för QR-koden;
  • upptäcka en schweizisk QR-kod från en bild;
  • läs betalningsinformation från den schweiziska QR-koden i Java.

Dessutom kan du lära dig mer om Aspose.BarCode för Java API med hjälp av dokumentationen. I händelse av oklarheter, var god kontakta oss på forumet.

Se även