Wygeneruj szwajcarski kod QR przy użyciu języka Java

Szwajcarski kod QR jest również znany jako szwajcarski rachunek QR. Został opracowany w celu automatyzacji płatności cyfrowych. Możemy łatwo zakodować wszystkie niezbędne informacje o płatnościach wymagane do uruchomienia płatności w szwajcarskim kodzie QR. Szwajcarski kod QR zawiera szwajcarski krzyż pośrodku. W tym artykule dowiemy się, jak wygenerować szwajcarski kod QR za pomocą języka Java. Ponadto nauczymy się również programowo dekodować i odczytywać informacje o płatności ze szwajcarskiego kodu QR.

W tym artykule zostaną omówione następujące tematy:

Java API do generowania i odczytu szwajcarskiego kodu QR

Do generowania i odczytywania szwajcarskich kodów QR będziemy używać API Aspose.BarCode for Java. Zapewnia klasy SwissQRBill i SwissQRCodetext oferujące różne właściwości do pracy ze szwajcarskimi kodami QR. Klasa SwissQRBill umożliwia pobieranie lub ustawianie danych rozliczeniowych i płatności, takich jak informacje o koncie, kwota, waluta i dane wierzyciela. Klasa SwissQRCodetext umożliwia kodowanie i dekodowanie informacji SwissQRBill osadzonych w szwajcarskim kodzie QR.

Interfejs API udostępnia klasę ComplexBarcodeGenerator do generowania obrazów złożonych kodów kreskowych, takich jak szwajcarskie kody QR. Klasa BarCodeReader API umożliwia odczyt kodów kreskowych określonego typu DecodeType. Klasa BarCodeResult interfejsu API przechowuje rozpoznane dane kodu kreskowego, takie jak typ kodu kreskowego i tekst kodu. Co więcej, jest to bogaty w funkcje interfejs API, który umożliwia generowanie, skanowanie i odczytywanie szerokiej gamy symboli kodów kreskowych.

Pobierz plik JAR interfejsu API lub dodaj następującą konfigurację pom.xml w aplikacji Java opartej na 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>

Wygeneruj szwajcarski kod QR w Javie

Możemy wygenerować szwajcarski kod QR, wykonując poniższe czynności:

  • Utwórz instancję klasy SwissQRCodetext.
  • Ustaw różne właściwości SwissQRBill, takie jak wersja, konto, kwota, waluta, numer referencyjny itp.
  • Zainicjuj obiekty klasy Adres i ustaw szczegóły Wierzyciela i Dłużnika.
  • Następnie utwórz instancję klasy ComplexBarcodeGenerator z obiektem SwissQRCodetext.
  • Na koniec wywołaj metodę save(), aby zapisać obraz w podanej ścieżce pliku.

Poniższy przykładowy kod pokazuje, jak wygenerować szwajcarski kod QR przy użyciu języka Java.

// Ten przykład kodu pokazuje, jak wygenerować szwajcarski kod QR
// Utwórz szwajcarski rachunek QR
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");

// Adres wierzyciela
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);

// Adres dłużnika
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);

// Wygeneruj szwajcarski rachunek QR
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);

// Zapisz obraz kodu kreskowego
generator.save("SwissQRBill.png");

Dostosuj szwajcarski kod QR w Javie

Możemy dostosować wygląd szwajcarskiego kodu QR, wykonując poniższe czynności:

  • Utwórz instancję klasy SwissQRCodetext.
  • Ustaw różne właściwości SwissQRBill, takie jak wersja, konto, kwota, waluta, numer referencyjny itp.
  • Zainicjuj obiekty klasy Adres i ustaw szczegóły Wierzyciela i Dłużnika.
  • Utwórz instancję klasy ComplexBarcodeGenerator z obiektem SwissQRCodetext.
  • Następnie ustaw różne parametry kodu kreskowego, takie jak szerokość obrazu, kodowanie, kolor tła, rozdzielczość, obramowanie itp.
  • Na koniec wywołaj metodę save(), aby wygenerować kod. Pobiera ścieżkę do pliku obrazu i BarCodeImageFormat jako argumenty.

Poniższy przykładowy kod pokazuje, jak dostosować szwajcarski kod QR za pomocą języka Java.

// Ten przykład kodu pokazuje, jak dostosować wygląd szwajcarskiego kodu QR
// Utwórz szwajcarski rachunek QR
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");

// Adres wierzyciela
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);

// Adres dłużnika
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);

// Wygeneruj szwajcarski rachunek QR
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);

// Ustaw rozmiar obrazu
generator.getParameters().getBarcode().getXDimension().setPixels(4);

// Ustaw kodowanie
generator.getParameters().getBarcode().getQR().setQrEncodeMode(QREncodeMode.ECI_ENCODING);
generator.getParameters().getBarcode().getQR().setQrECIEncoding(ECIEncodings.UTF8);

// Ustaw kolor tła
generator.getParameters().setBackColor(Color.RED);

// Ustaw rozdzielczość obrazu
generator.getParameters().setResolution(300);

// Ustaw granicę
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);

// Zapisz obraz kodu kreskowego jako JPEG
generator.save("SwissQRBill.jpg", BarCodeImageFormat.JPEG);
Dostosuj szwajcarski kod QR w Javie

Dostosuj szwajcarski kod QR w Javie

Przeczytaj szwajcarski kod QR w Javie

Kody kreskowe możemy odczytać z obrazu, wykonując poniższe czynności:

  • Najpierw załaduj obraz przy użyciu klasy BarCodeReader.
  • Uzyskaj wyniki rozpoznawania w obiekcie klasy BarCodeResult za pomocą metody readBarCodes().
  • Przejrzyj wyniki i zdekoduj szwajcarski kod QR za pomocą metody tryDecodeSwissQR().
  • Na koniec przeczytaj SwissQRCodetext i pokaż dane.

Poniższy przykładowy kod pokazuje, jak odczytać szwajcarski kod QR z obrazu przy użyciu języka Java.

// Ten przykład kodu pokazuje, jak wykryć, zdekodować i odczytać szwajcarski kod QR
// Rozpoznaj szwajcarski kod QR
BarCodeReader reader = new BarCodeReader("SwissQRBill.png", DecodeType.QR);

for (BarCodeResult barcodeResult : reader.readBarCodes())
{
    // Spróbuj rozszyfrować szwajcarski kod QR
    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 

Uzyskaj bezpłatną licencję

Możesz uzyskać bezpłatną tymczasową licencję, aby wypróbować bibliotekę bez ograniczeń ewaluacyjnych.

Wniosek

W tym artykule dowiedzieliśmy się, jak:

  • generować programowo szwajcarski obraz QR Bill;
  • ustaw rozmiar i rozdzielczość obrazu kodu QR;
  • ustaw kolor obramowania i tyłu kodu QR;
  • wykryć szwajcarski kod QR z obrazu;
  • przeczytaj szczegóły płatności ze szwajcarskiego kodu QR w Javie.

Poza tym możesz dowiedzieć się więcej o Aspose.BarCode for Java API korzystając z dokumentacji. W przypadku jakichkolwiek niejasności prosimy o kontakt na forum.

Zobacz też