Сгенерируйте швейцарский QR-код с помощью Java

Швейцарский QR-код также известен как швейцарский QR-счет. Он был разработан для автоматизации цифровых платежей. Мы можем легко закодировать всю необходимую платежную информацию, необходимую для запуска платежей, в швейцарском QR-коде. Швейцарский QR-код содержит швейцарский крест посередине. В этой статье мы узнаем, как создать швейцарский QR-код с помощью Java. Кроме того, мы также узнаем, как программно декодировать и считывать платежную информацию из швейцарского QR-кода.

В этой статье должны быть раскрыты следующие темы:

Java API для создания и чтения швейцарского QR-кода

Для создания и чтения швейцарских QR-кодов мы будем использовать API Aspose.BarCode for Java. Он предоставляет классы SwissQRBill и SwissQRCodetext, предлагающие различные свойства для работы со швейцарскими QR-кодами. Класс SwissQRBill позволяет получать или устанавливать данные для выставления счетов и платежей, такие как информация об учетной записи, сумма, валюта и сведения о кредиторе. Класс SwissQRCodetext позволяет кодировать и декодировать информацию SwissQRBill, встроенную в швейцарский QR-код.

API предоставляет класс ComplexBarcodeGenerator для создания изображений сложных штрих-кодов, таких как швейцарские QR-коды. Класс BarCodeReader API позволяет считывать штрих-коды указанного DecodeType. Класс BarCodeResult API хранит распознанные данные штрих-кода, такие как тип штрих-кода и текст кода. Кроме того, это многофункциональный API, который позволяет генерировать, сканировать и считывать широкий спектр символик штрих-кода.

Пожалуйста, либо скачайте JAR API, либо добавьте следующую конфигурацию pom.xml в приложение Java на основе 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>

Сгенерируйте швейцарский QR-код в Java

Мы можем сгенерировать швейцарский QR-код, выполнив следующие шаги:

  • Создайте экземпляр класса SwissQRCodetext.
  • Установите различные свойства SwissQRBill, такие как версия, учетная запись, сумма, валюта, ссылка и т. д.
  • Инициализируйте объекты класса Address и задайте сведения о кредиторе и должнике.
  • После этого создайте экземпляр класса ComplexBarcodeGenerator с объектом SwissQRCodetext.
  • Наконец, вызовите метод save(), чтобы сохранить изображение по заданному пути к файлу.

В следующем примере кода показано, как создать швейцарский QR-код с помощью Java.

// В этом примере кода показано, как создать швейцарский QR-код.
// Создать швейцарский 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");

// Адрес кредитора
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);

// Адрес должника
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);

// Сгенерировать швейцарский счет QR
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);

// Сохраните изображение штрих-кода
generator.save("SwissQRBill.png");
Generate Swiss QR Code in Java.

Generate Swiss QR Code in Java.

Настройте швейцарский QR-код в Java

Мы можем настроить внешний вид швейцарского QR-кода, выполнив следующие шаги:

  • Создайте экземпляр класса SwissQRCodetext.
  • Установите различные свойства SwissQRBill, такие как версия, учетная запись, сумма, валюта, ссылка и т. д.
  • Инициализируйте объекты класса Address и задайте сведения о кредиторе и должнике.
  • Создайте экземпляр класса ComplexBarcodeGenerator с объектом SwissQRCodetext.
  • После этого установите различные параметры штрих-кода, такие как ширина изображения, кодировка, цвет фона, разрешение, граница и т. д.
  • Наконец, вызовите метод save() для генерации кода. Он принимает путь к файлу изображения и BarCodeImageFormat в качестве аргументов.

В следующем примере кода показано, как настроить швейцарский QR-код с помощью Java.

// В этом примере кода показано, как настроить внешний вид швейцарского QR-кода.
// Создать швейцарский 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");

// Адрес кредитора
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);

// Адрес должника
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);

// Сгенерировать швейцарский счет QR
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);

// Установить размер изображения
generator.getParameters().getBarcode().getXDimension().setPixels(4);

// Установить кодировку
generator.getParameters().getBarcode().getQR().setQrEncodeMode(QREncodeMode.ECI_ENCODING);
generator.getParameters().getBarcode().getQR().setQrECIEncoding(ECIEncodings.UTF8);

// Установить цвет фона
generator.getParameters().setBackColor(Color.RED);

// Установить разрешение изображения
generator.getParameters().setResolution(300);

// Установить границу
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);

// Сохраните изображение штрих-кода в формате JPEG.
generator.save("SwissQRBill.jpg", BarCodeImageFormat.JPEG);
Настройте швейцарский QR-код в Java

Настройте швейцарский QR-код в Java

Чтение швейцарского QR-кода на Java

Мы можем считывать штрих-коды с изображения, выполнив следующие шаги:

  • Во-первых, загрузите изображение с помощью класса BarCodeReader.
  • Получить результаты распознавания в объекте класса BarCodeResult с помощью метода readBarCodes().
  • Прокрутите результаты и расшифруйте швейцарский QR-код, используя метод tryDecodeSwissQR().
  • Наконец, прочитайте SwissQRCodetext и покажите данные.

В следующем примере кода показано, как прочитать швейцарский QR-код из изображения с помощью Java.

// В этом примере кода показано, как обнаружить, декодировать и прочитать швейцарский QR-код.
// Распознать швейцарский QR-код
BarCodeReader reader = new BarCodeReader("SwissQRBill.png", DecodeType.QR);

for (BarCodeResult barcodeResult : reader.readBarCodes())
{
    // Попробуйте расшифровать швейцарский 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 

Получить бесплатную лицензию

Вы можете получить бесплатную временную лицензию, чтобы попробовать библиотеку без ограничений пробной версии.

Вывод

В этой статье мы узнали, как:

  • генерировать изображение Swiss QR Bill программно;
  • установить размер и разрешение изображения QR-кода;
  • установить цвет рамки и фона QR-кода;
  • обнаружить швейцарский QR-код на изображении;
  • читать платежные реквизиты из швейцарского QR-кода на Java.

Кроме того, вы можете узнать больше об Aspose.BarCode for Java API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также