Javaを使用してスイスのQRコードを生成する

スイスのQRコードは、スイスのQRビルとも呼ばれます。これは、デジタル決済を自動化するために開発されました。スイスのQRコードで支払いをトリガーするために必要なすべての支払い情報を簡単にエンコードできます。スイスのQRコードには、中央にスイスの十字が含まれています。この記事では、Javaを使用してスイスのQRコードを生成する方法を学習します。さらに、プログラムでスイスのQRコードから支払い情報をデコードして読み取る方法も学習します。

この記事では、次のトピックについて説明します。

スイスのQRコードを生成して読み取るJavaAPI

スイスのQRコードの生成と読み取りには、Aspose.BarCode for JavaAPIを使用します。 SwissQRBillおよびSwissQRCodetextクラスを提供し、スイスのQRコードを操作するためのさまざまなプロパティを提供します。 SwissQRBillクラスを使用すると、アカウント情報、金額、通貨、債権者の詳細などの請求および支払いデータを取得または設定できます。 SwissQRCodetextクラスを使用すると、SwissQRコードに埋め込まれたSwissQRBill情報をエンコードおよびデコードできます。

APIは、スイスのQRコードなどの複雑なバーコードの画像を生成するためのComplexBarcodeGeneratorクラスを提供します。 APIのBarCodeReaderクラスでは、指定されたDecodeTypeのバーコードを読み取ることができます。 APIのBarCodeResultクラスは、バーコードタイプやコードテキストなどの認識されたバーコードデータを格納します。さらに、これは機能豊富なAPIであり、さまざまなバーコードシンボルを生成、スキャン、および読み取ることができます。

APIのJARをダウンロードするか、MavenベースのJavaアプリケーションに次のpom.xml構成を追加してください。

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

JavaでスイスのQRコードを生成する

以下の手順に従って、スイスのQRコードを生成できます。

  • SwissQRCodetextクラスのインスタンスを作成します。
  • バージョン、アカウント、金額、通貨、参照などのさまざまなSwissQRBillプロパティを設定します。
  • Addressクラスオブジェクトを初期化し、債権者と債務者の詳細を設定します。
  • その後、SwissQRCodetextオブジェクトを使用してComplexBarcodeGeneratorクラスのインスタンスを作成します。
  • 最後に、save()メソッドを呼び出して、指定されたファイルパスに画像を保存します。

次のコードサンプルは、Javaを使用してスイスのQRコードを生成する方法を示しています。

// このコード例は、スイスの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");

JavaでスイスのQRコードをカスタマイズする

以下の手順に従って、スイスのQRコードの外観をカスタマイズできます。

  • SwissQRCodetextクラスのインスタンスを作成します。
  • バージョン、アカウント、金額、通貨、参照などのさまざまなSwissQRBillプロパティを設定します。
  • Addressクラスオブジェクトを初期化し、債権者と債務者の詳細を設定します。
  • SwissQRCodetextオブジェクトを使用してComplexBarcodeGeneratorクラスのインスタンスを作成します。
  • その後、画像の幅、エンコード、背景色、解像度、境界線などのさまざまなバーコードパラメータを設定します。
  • 最後に、save()メソッドを呼び出してコードを生成します。画像ファイルのパスとBarCodeImageFormatを引数として取ります。

次のコードサンプルは、Javaを使用してスイスのQRコードをカスタマイズする方法を示しています。

// このコード例は、スイスの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);
JavaでスイスのQRコードをカスタマイズする

JavaでスイスのQRコードをカスタマイズする

JavaでスイスのQRコードを読む

以下の手順に従って、画像からバーコードを読み取ることができます。

  • まず、BarCodeReaderクラスを使用して画像を読み込みます。
  • readBarCodes()メソッドを使用して、BarCodeResultクラスオブジェクトで認識結果を取得します。
  • 結果をループし、tryDecodeSwissQR()メソッドを使用してスイスのQRコードをデコードします。
  • 最後に、SwissQRCodetextを読み、データを表示します。

次のコードサンプルは、Javaを使用して画像からスイスのQRコードを読み取る方法を示しています。

// このコード例は、スイスの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 

無料ライセンスを取得する

無料の一時ライセンスを取得して、評価の制限なしにライブラリを試すことができます。

結論

この記事では、次の方法を学びました。

  • プログラムでスイスのQRビル画像を生成します。
  • QRコードの画像サイズと解像度を設定します。
  • QRコードの境界線と背面の色を設定します。
  • 画像からスイスのQRコードを検出します。
  • JavaのスイスのQRコードから支払いの詳細を読んでください。

さらに、ドキュメントを使用して、JavaAPIのAspose.BarCodeについて詳しく知ることができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。

関連項目