Schweizer QR Code mit Java generieren

Ein Swiss QR Code wird auch als Swiss QR Bill bezeichnet. Es wurde entwickelt, um digitale Zahlungen zu automatisieren. Wir können alle notwendigen Zahlungsinformationen, die zum Auslösen von Zahlungen erforderlich sind, einfach in den Swiss QR Code codieren. Der Swiss QR Code enthält in der Mitte ein Schweizer Kreuz. In diesem Artikel erfahren Sie, wie Sie mit Java einen Schweizer QR-Code generieren. Darüber hinaus werden wir auch lernen, Zahlungsinformationen aus einem Schweizer QR-Code programmgesteuert zu entschlüsseln und auszulesen.

Folgende Themen sollen in diesem Artikel behandelt werden:

Java-API zum Generieren und Lesen des Schweizer QR-Codes

Zum Generieren und Lesen von Schweizer QR-Codes verwenden wir die API Aspose.BarCode for Java. Es stellt die Klassen SwissQRBill und SwissQRCodetext bereit, die verschiedene Eigenschaften für die Arbeit mit Schweizer QR-Codes bieten. Die SwissQRBill-Klasse ermöglicht das Abrufen oder Setzen von Rechnungs- und Zahlungsdaten, wie Kontoinformationen, Betrag, Währung und Gläubigerdetails. Die Klasse SwissQRCodetext ermöglicht die Kodierung und Dekodierung der im Swiss QR Code eingebetteten SwissQRBill-Informationen.

Die API stellt die Klasse ComplexBarcodeGenerator zum Generieren von Bildern komplexer Barcodes wie Schweizer QR-Codes bereit. Die Klasse BarCodeReader der API ermöglicht das Lesen der Barcodes des angegebenen DecodeType. Die Klasse BarCodeResult der API speichert die erkannten Barcode-Daten, wie z. B. Barcode-Typ und Code-Text. Darüber hinaus handelt es sich um eine funktionsreiche API, mit der Sie eine Vielzahl von Barcode-Symbologien generieren, scannen und lesen können.

Bitte downloaden Sie die JAR-Datei der API oder fügen Sie die folgende pom.xml-Konfiguration in einer Maven-basierten Java-Anwendung hinzu.

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

Schweizer QR Code in Java generieren

Wir können einen Schweizer QR-Code generieren, indem wir die folgenden Schritte ausführen:

  • Erstellen Sie eine Instanz der SwissQRCodetext-Klasse.
  • Stellen Sie verschiedene SwissQRBill-Eigenschaften wie Version, Konto, Betrag, Währung, Referenz usw. ein.
  • Initialisieren Sie die Objekte der Address klasse und legen Sie Gläubiger- und Schuldnerdetails fest.
  • Erstellen Sie danach eine Instanz der Klasse ComplexBarcodeGenerator mit dem Objekt SwissQRCodetext.
  • Rufen Sie schließlich die Methode save() auf, um das Bild im angegebenen Dateipfad zu speichern.

Das folgende Codebeispiel zeigt, wie Sie mit Java einen Schweizer QR-Code generieren.

// Dieses Codebeispiel zeigt, wie ein Schweizer QR-Code generiert wird
// Schweizer QR-Rechnung erstellen
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");

// Adresse des Gläubigers
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);

// Adresse des Schuldners
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);

// Schweizer QR-Rechnung generieren
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);

// Speichern Sie das Barcode-Bild
generator.save("SwissQRBill.png");

Swiss QR Code in Java anpassen

Wir können das Erscheinungsbild eines Schweizer QR-Codes anpassen, indem wir die folgenden Schritte ausführen:

  • Erstellen Sie eine Instanz der SwissQRCodetext -Klasse.
  • Stellen Sie verschiedene SwissQRBill-Eigenschaften wie Version, Konto, Betrag, Währung, Referenz usw. ein.
  • Initialisieren Sie die Objekte der Address klasse und legen Sie Gläubiger- und Schuldnerdetails fest.
  • Erstellen Sie eine Instanz der ComplexBarcodeGenerator -Klasse mit dem SwissQRCodetext-Objekt.
  • Stellen Sie danach verschiedene Barcode-Parameter wie Bildbreite, Codierung, Hintergrundfarbe, Auflösung, Rand usw. ein.
  • Rufen Sie schließlich die Methode save() auf, um den Code zu generieren. Es verwendet den Bilddateipfad und BarCodeImageFormat als Argumente.

Das folgende Codebeispiel zeigt, wie Sie einen Schweizer QR-Code mit Java anpassen.

// Dieses Codebeispiel zeigt, wie Sie das Erscheinungsbild eines Schweizer QR-Codes anpassen können
// Schweizer QR-Rechnung erstellen
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");

// Adresse des Gläubigers
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);

// Adresse des Schuldners
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);

// Schweizer QR-Rechnung generieren
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);

// Bildgröße einstellen
generator.getParameters().getBarcode().getXDimension().setPixels(4);

// Codierung einstellen
generator.getParameters().getBarcode().getQR().setQrEncodeMode(QREncodeMode.ECI_ENCODING);
generator.getParameters().getBarcode().getQR().setQrECIEncoding(ECIEncodings.UTF8);

// Hintergrundfarbe festlegen
generator.getParameters().setBackColor(Color.RED);

// Bildauflösung einstellen
generator.getParameters().setResolution(300);

// Grenze setzen
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);

// Speichern Sie das Barcode-Bild als JPEG
generator.save("SwissQRBill.jpg", BarCodeImageFormat.JPEG);
Swiss QR Code in Java anpassen

Swiss QR Code in Java anpassen

Swiss QR Code in Java lesen

Wir können Barcodes von einem Bild lesen, indem wir die folgenden Schritte ausführen:

  • Laden Sie zunächst ein Bild mit der BarCodeReader-Klasse.
  • Abrufen von Erkennungsergebnissen im Objekt der Klasse BarCodeResult mithilfe der Methode readBarCodes().
  • Durchlaufen Sie die Ergebnisse und decodieren Sie den Schweizer QR-Code mit der Methode tryDecodeSwissQR().
  • Lesen Sie zum Schluss den SwissQRCodetext und zeigen Sie die Daten an.

Das folgende Codebeispiel zeigt, wie man mit Java einen Schweizer QR-Code aus einem Bild ausliest.

// Dieses Codebeispiel zeigt, wie ein Schweizer QR-Code erkannt, dekodiert und gelesen wird
// Swiss QR Code erkennen
BarCodeReader reader = new BarCodeReader("SwissQRBill.png", DecodeType.QR);

for (BarCodeResult barcodeResult : reader.readBarCodes())
{
    // Versuchen Sie, den Swiss QR Code zu entschlüsseln
    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 

Holen Sie sich eine kostenlose Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um die Bibliothek ohne Evaluierungseinschränkungen zu testen.

Fazit

In diesem Artikel haben wir gelernt, wie man:

  • Bild der Schweizer QR-Rechnung programmgesteuert generieren;
  • Bildgröße und Auflösung des QR-Codes festlegen;
  • legen Sie die Rand- und Hintergrundfarbe des QR-Codes fest;
  • einen Schweizer QR-Code aus einem Bild erkennen;
  • Zahlungsdetails aus dem Swiss QR Code in Java lesen.

Außerdem können Sie in der Dokumentation mehr über Aspose.BarCode for Java API erfahren. Bei Unklarheiten können Sie uns gerne im Forum kontaktieren.

Siehe auch