VintaSoft Barcode .NET SDK 16.0: Documentation for .NET developer
Vintasoft.Barcode.SymbologySubsets Namespace / SwissQRCodeBarcodeSymbology Class
Members Object Syntax Example Hierarchy Requirements SeeAlso
In This Topic
SwissQRCodeBarcodeSymbology Class
In This Topic
Defines the Swiss QR Code barcode symbology - subset of QR barcode symbology.
Object Model
BarcodeSymbologySubset SwissQRCodeBarcodeSymbology
Syntax
'Declaration

Public Class SwissQRCodeBarcodeSymbology
   Inherits BarcodeSymbologySubset

public class SwissQRCodeBarcodeSymbology : BarcodeSymbologySubset

Example

This C#/VB.NET code shows how to generate and recognize Swiss QR Code barcode:


Class SwissQRCodeExample
    ''' <summary>
    ''' Generates and recognizes Swiss QR Code barcode.
    ''' </summary>
    Public Shared Sub Test()
        ' create Swiss QR Code Value
        Dim barcodeValue As New Vintasoft.Barcode.BarcodeInfo.SwissQRCodeValueItem()
        barcodeValue.IBAN = "CH4431999123000889012"
        barcodeValue.CreditorAddressType = "S"
        barcodeValue.CreditorName = "Robert Schneider AG"
        barcodeValue.CreditorStreetOrAddressLine1 = "Rue du Lac"
        barcodeValue.CreditorBuildingNumberOrAddressLine2 = "1268"
        barcodeValue.CreditorTown = "Biel"
        barcodeValue.CreditorCountry = "CH"
        barcodeValue.Amount = "1949.75"
        barcodeValue.AmountCurrency = "CHF"
        barcodeValue.UltimateDebtorAddressType = "S"
        barcodeValue.UltimateDebtorName = "Pia - Maria Rutschmann - Schnyder"
        barcodeValue.UltimateDebtorStreetOrAddressLine1 = "Grosse Marktgasse"
        barcodeValue.UltimateDebtorBuildingNumberOrAddressLine2 = "28"
        barcodeValue.UltimateDebtorTown = "Rorschach"
        barcodeValue.UltimateDebtorCountry = "CH"
        barcodeValue.PaymentReferenceType = "QRR"
        barcodeValue.PaymentReference = "210000000003139471430009017"
        barcodeValue.UnstructuredMessage = "Order of 15 June 2020"
        barcodeValue.BillInformation = "//S1/10/10201409/11/200701/20/140.000-53/30/102673831/31/200615/32/7.7/33/7.7:139.40/40/0:30"
        barcodeValue.AlternativeSchemeParameters1 = "Name AV1: UV; UltraPay005; 12345"
        barcodeValue.AlternativeSchemeParameters2 = "Name AV2: XY; XYService; 54321"

        ' generate barcode image
        Using barcodeImage As Vintasoft.Imaging.VintasoftBitmap = Generate(barcodeValue)
            ' recognize barcode from image
            Dim recognizedBarcode As Vintasoft.Barcode.BarcodeInfo.SwissQRCodeBarcodeInfo = Recognize(barcodeImage)

            ' if initial barcode value does NOT equal to the recognized barcode value
            If barcodeValue.ToString() <> recognizedBarcode.DecodedValue.ToString() Then
                Throw New System.ApplicationException("Initial barcode value does NOT equal to the recognized barcode value.")
            End If

            ' print recognized barcode value
            Dim sb As New System.Text.StringBuilder()

            Dim value As Vintasoft.Barcode.BarcodeInfo.SwissQRCodeValueItem = recognizedBarcode.DecodedValue

            sb.AppendLine(String.Format("Version:                                           {0}", value.Version))
            sb.AppendLine(String.Format("CodingType:                                        {0}", value.CodingType))

            If Not String.IsNullOrEmpty(value.IBAN) Then
                sb.AppendLine(String.Format("IBAN:                                              {0}", value.IBAN))
            End If

            If Not String.IsNullOrEmpty(value.CreditorAddressType) Then
                sb.AppendLine(String.Format("Creditor address type:                             {0}", value.CreditorAddressType))
            End If
            If Not String.IsNullOrEmpty(value.CreditorName) Then
                sb.AppendLine(String.Format("Creditor name:                                     {0}", value.CreditorName))
            End If
            If Not String.IsNullOrEmpty(value.CreditorStreetOrAddressLine1) Then
                sb.AppendLine(String.Format("Creditor street or address line 1:                 {0}", value.CreditorStreetOrAddressLine1))
            End If
            If Not String.IsNullOrEmpty(value.CreditorBuildingNumberOrAddressLine2) Then
                sb.AppendLine(String.Format("Creditor building number or address line 2:        {0}", value.CreditorBuildingNumberOrAddressLine2))
            End If
            If Not String.IsNullOrEmpty(value.CreditorTown) Then
                sb.AppendLine(String.Format("Creditor town:                                     {0}", value.CreditorTown))
            End If
            If Not String.IsNullOrEmpty(value.CreditorCountry) Then
                sb.AppendLine(String.Format("Creditor country:                                  {0}", value.CreditorCountry))
            End If


            If Not String.IsNullOrEmpty(value.Amount) Then
                sb.AppendLine(String.Format("Amount:                                            {0}", value.Amount))
            End If
            If Not String.IsNullOrEmpty(value.AmountCurrency) Then
                sb.AppendLine(String.Format("Amount currency:                                   {0}", value.AmountCurrency))
            End If

            If Not String.IsNullOrEmpty(value.UltimateDebtorAddressType) Then
                sb.AppendLine(String.Format("Ultimate debtor address type:                      {0}", value.UltimateDebtorAddressType))
            End If
            If Not String.IsNullOrEmpty(value.UltimateDebtorName) Then
                sb.AppendLine(String.Format("Ultimate debtor name:                              {0}", value.UltimateDebtorName))
            End If
            If Not String.IsNullOrEmpty(value.UltimateDebtorStreetOrAddressLine1) Then
                sb.AppendLine(String.Format("Ultimate debtor street or address line 1:          {0}", value.UltimateDebtorStreetOrAddressLine1))
            End If
            If Not String.IsNullOrEmpty(value.UltimateDebtorBuildingNumberOrAddressLine2) Then
                sb.AppendLine(String.Format("Ultimate debtor building number or address line 2: {0}", value.UltimateDebtorBuildingNumberOrAddressLine2))
            End If
            If Not String.IsNullOrEmpty(value.UltimateDebtorTown) Then
                sb.AppendLine(String.Format("Ultimate debtor town:                              {0}", value.UltimateDebtorTown))
            End If
            If Not String.IsNullOrEmpty(value.UltimateDebtorCountry) Then
                sb.AppendLine(String.Format("Ultimate debtor country:                           {0}", value.UltimateDebtorCountry))
            End If

            If Not String.IsNullOrEmpty(value.PaymentReferenceType) Then
                sb.AppendLine(String.Format("Payment reference type:                            {0}", value.PaymentReferenceType))
            End If
            If Not String.IsNullOrEmpty(value.PaymentReference) Then
                sb.AppendLine(String.Format("Payment reference:                                 {0}", value.PaymentReference))
            End If

            If Not String.IsNullOrEmpty(value.UnstructuredMessage) Then
                sb.AppendLine(String.Format("Unstructured message:                              {0}", value.UnstructuredMessage))
            End If

            If Not String.IsNullOrEmpty(value.BillInformation) Then
                sb.AppendLine(String.Format("Bill information:                                  {0}", value.BillInformation))
            End If

            If Not String.IsNullOrEmpty(value.AlternativeSchemeParameters1) Then
                sb.AppendLine(String.Format("Alternative scheme parameters 1:                   {0}", value.AlternativeSchemeParameters1))
            End If
            If Not String.IsNullOrEmpty(value.AlternativeSchemeParameters1) Then
                sb.AppendLine(String.Format("Alternative scheme parameters 2:                   {0}", value.AlternativeSchemeParameters2))
            End If

            System.Console.WriteLine(sb.ToString())
        End Using
    End Sub

    ''' <summary>
    ''' Generates the Swiss QR Code barcode image.
    ''' </summary>
    ''' <param name="barcodeValue">The barcode value.</param>
    Private Shared Function Generate(barcodeValue As Vintasoft.Barcode.BarcodeInfo.SwissQRCodeValueItem) As Vintasoft.Imaging.VintasoftBitmap
        ' create barcode writer
        Using writer As New Vintasoft.Barcode.BarcodeWriter()
            ' encode Swiss QR Code barcode to the writer settings
            Vintasoft.Barcode.SymbologySubsets.BarcodeSymbologySubsets.SwissQRCode.Encode(barcodeValue, writer.Settings)

            ' generate barcode image
            Return writer.GetBarcodeAsVintasoftBitmap()
        End Using
    End Function

    ''' <summary>
    ''' Recognizes the Swiss QR Code barcode from image.
    ''' </summary>
    ''' <param name="barcodeImage">The barcode image.</param>
    Private Shared Function Recognize(barcodeImage As Vintasoft.Imaging.VintasoftBitmap) As Vintasoft.Barcode.BarcodeInfo.SwissQRCodeBarcodeInfo
        ' create barcode reader
        Using reader As New Vintasoft.Barcode.BarcodeReader()
            ' specify that Swiss QR Code barcode must be recognized
            reader.Settings.ScanBarcodeSubsets.Add(Vintasoft.Barcode.SymbologySubsets.BarcodeSymbologySubsets.SwissQRCode)

            ' recognize barcodes in image
            Dim info As Vintasoft.Barcode.IBarcodeInfo = reader.ReadBarcodes(barcodeImage)(0)

            ' return information about recognized Swiss QR Code barcode
            Return DirectCast(info, Vintasoft.Barcode.BarcodeInfo.SwissQRCodeBarcodeInfo)
        End Using
    End Function
End Class


class SwissQRCodeExample
{
    /// <summary>
    /// Generates and recognizes Swiss QR Code barcode.
    /// </summary>
    public static void Test()
    {
        // create Swiss QR Code Value
        Vintasoft.Barcode.BarcodeInfo.SwissQRCodeValueItem barcodeValue = new Vintasoft.Barcode.BarcodeInfo.SwissQRCodeValueItem();
        barcodeValue.IBAN= "CH4431999123000889012";
        barcodeValue.CreditorAddressType = "S";
        barcodeValue.CreditorName = "Robert Schneider AG";
        barcodeValue.CreditorStreetOrAddressLine1 = "Rue du Lac";
        barcodeValue.CreditorBuildingNumberOrAddressLine2 = "1268";
        barcodeValue.CreditorTown = "Biel";
        barcodeValue.CreditorCountry = "CH";
        barcodeValue.Amount = "1949.75";
        barcodeValue.AmountCurrency = "CHF";
        barcodeValue.UltimateDebtorAddressType = "S";
        barcodeValue.UltimateDebtorName = "Pia - Maria Rutschmann - Schnyder";
        barcodeValue.UltimateDebtorStreetOrAddressLine1 = "Grosse Marktgasse";
        barcodeValue.UltimateDebtorBuildingNumberOrAddressLine2 = "28";
        barcodeValue.UltimateDebtorTown = "Rorschach";
        barcodeValue.UltimateDebtorCountry = "CH";
        barcodeValue.PaymentReferenceType = "QRR";
        barcodeValue.PaymentReference = "210000000003139471430009017";
        barcodeValue.UnstructuredMessage = "Order of 15 June 2020";
        barcodeValue.BillInformation = "//S1/10/10201409/11/200701/20/140.000-53/30/102673831/31/200615/32/7.7/33/7.7:139.40/40/0:30";
        barcodeValue.AlternativeSchemeParameters1 = "Name AV1: UV; UltraPay005; 12345";
        barcodeValue.AlternativeSchemeParameters2 = "Name AV2: XY; XYService; 54321";        
        
        // generate barcode image
        using (Vintasoft.Imaging.VintasoftBitmap barcodeImage = Generate(barcodeValue))
        {
            // recognize barcode from image
            Vintasoft.Barcode.BarcodeInfo.SwissQRCodeBarcodeInfo recognizedBarcode = Recognize(barcodeImage);

            // if initial barcode value does NOT equal to the recognized barcode value
            if (barcodeValue.ToString() != recognizedBarcode.DecodedValue.ToString())
                throw new System.ApplicationException("Initial barcode value does NOT equal to the recognized barcode value.");

            // print recognized barcode value
            System.Text.StringBuilder sb = new System.Text.StringBuilder();

            Vintasoft.Barcode.BarcodeInfo.SwissQRCodeValueItem value = recognizedBarcode.DecodedValue;

            sb.AppendLine(string.Format("Version:                                           {0}", value.Version));
            sb.AppendLine(string.Format("CodingType:                                        {0}", value.CodingType));

            if (!string.IsNullOrEmpty(value.IBAN))
                sb.AppendLine(string.Format("IBAN:                                              {0}", value.IBAN));

            if (!string.IsNullOrEmpty(value.CreditorAddressType))
                sb.AppendLine(string.Format("Creditor address type:                             {0}", value.CreditorAddressType));
            if (!string.IsNullOrEmpty(value.CreditorName))
                sb.AppendLine(string.Format("Creditor name:                                     {0}", value.CreditorName));
            if (!string.IsNullOrEmpty(value.CreditorStreetOrAddressLine1))
                sb.AppendLine(string.Format("Creditor street or address line 1:                 {0}", value.CreditorStreetOrAddressLine1));
            if (!string.IsNullOrEmpty(value.CreditorBuildingNumberOrAddressLine2))
                sb.AppendLine(string.Format("Creditor building number or address line 2:        {0}", value.CreditorBuildingNumberOrAddressLine2));
            if (!string.IsNullOrEmpty(value.CreditorTown))
                sb.AppendLine(string.Format("Creditor town:                                     {0}", value.CreditorTown));
            if (!string.IsNullOrEmpty(value.CreditorCountry))
                sb.AppendLine(string.Format("Creditor country:                                  {0}", value.CreditorCountry));


            if (!string.IsNullOrEmpty(value.Amount))
                sb.AppendLine(string.Format("Amount:                                            {0}", value.Amount));
            if (!string.IsNullOrEmpty(value.AmountCurrency))
                sb.AppendLine(string.Format("Amount currency:                                   {0}", value.AmountCurrency));

            if (!string.IsNullOrEmpty(value.UltimateDebtorAddressType))
                sb.AppendLine(string.Format("Ultimate debtor address type:                      {0}", value.UltimateDebtorAddressType));
            if (!string.IsNullOrEmpty(value.UltimateDebtorName))
                sb.AppendLine(string.Format("Ultimate debtor name:                              {0}", value.UltimateDebtorName));
            if (!string.IsNullOrEmpty(value.UltimateDebtorStreetOrAddressLine1))
                sb.AppendLine(string.Format("Ultimate debtor street or address line 1:          {0}", value.UltimateDebtorStreetOrAddressLine1));
            if (!string.IsNullOrEmpty(value.UltimateDebtorBuildingNumberOrAddressLine2))
                sb.AppendLine(string.Format("Ultimate debtor building number or address line 2: {0}", value.UltimateDebtorBuildingNumberOrAddressLine2));
            if (!string.IsNullOrEmpty(value.UltimateDebtorTown))
                sb.AppendLine(string.Format("Ultimate debtor town:                              {0}", value.UltimateDebtorTown));
            if (!string.IsNullOrEmpty(value.UltimateDebtorCountry))
                sb.AppendLine(string.Format("Ultimate debtor country:                           {0}", value.UltimateDebtorCountry));

            if (!string.IsNullOrEmpty(value.PaymentReferenceType))
                sb.AppendLine(string.Format("Payment reference type:                            {0}", value.PaymentReferenceType));
            if (!string.IsNullOrEmpty(value.PaymentReference))
                sb.AppendLine(string.Format("Payment reference:                                 {0}", value.PaymentReference));

            if (!string.IsNullOrEmpty(value.UnstructuredMessage))
                sb.AppendLine(string.Format("Unstructured message:                              {0}", value.UnstructuredMessage));

            if (!string.IsNullOrEmpty(value.BillInformation))
                sb.AppendLine(string.Format("Bill information:                                  {0}", value.BillInformation));

            if (!string.IsNullOrEmpty(value.AlternativeSchemeParameters1))
                sb.AppendLine(string.Format("Alternative scheme parameters 1:                   {0}", value.AlternativeSchemeParameters1));
            if (!string.IsNullOrEmpty(value.AlternativeSchemeParameters1))
                sb.AppendLine(string.Format("Alternative scheme parameters 2:                   {0}", value.AlternativeSchemeParameters2));

            System.Console.WriteLine(sb.ToString());
        }
    }

    /// <summary>
    /// Generates the Swiss QR Code barcode image.
    /// </summary>
    /// <param name="barcodeValue">The barcode value.</param>
    private static Vintasoft.Imaging.VintasoftBitmap Generate(Vintasoft.Barcode.BarcodeInfo.SwissQRCodeValueItem barcodeValue)
    {
        // create barcode writer
        using (Vintasoft.Barcode.BarcodeWriter writer = new Vintasoft.Barcode.BarcodeWriter())
        {
            // encode Swiss QR Code barcode to the writer settings
            Vintasoft.Barcode.SymbologySubsets.BarcodeSymbologySubsets.SwissQRCode.Encode(barcodeValue, writer.Settings);

            // generate barcode image
            return writer.GetBarcodeAsVintasoftBitmap();
        }
    }

    /// <summary>
    /// Recognizes the Swiss QR Code barcode from image.
    /// </summary>
    /// <param name="barcodeImage">The barcode image.</param>
    private static Vintasoft.Barcode.BarcodeInfo.SwissQRCodeBarcodeInfo Recognize(Vintasoft.Imaging.VintasoftBitmap barcodeImage)
    {
        // create barcode reader
        using (Vintasoft.Barcode.BarcodeReader reader = new Vintasoft.Barcode.BarcodeReader())
        {
            // specify that Swiss QR Code barcode must be recognized
            reader.Settings.ScanBarcodeSubsets.Add(Vintasoft.Barcode.SymbologySubsets.BarcodeSymbologySubsets.SwissQRCode);

            // recognize barcodes in image
            Vintasoft.Barcode.IBarcodeInfo info = reader.ReadBarcodes(barcodeImage)[0];

            // return information about recognized Swiss QR Code barcode
            return (Vintasoft.Barcode.BarcodeInfo.SwissQRCodeBarcodeInfo)info;
        }
    }    
}

Inheritance Hierarchy

System.Object
   Vintasoft.Barcode.BarcodeSymbology
      Vintasoft.Barcode.SymbologySubsets.BarcodeSymbologySubset
         Vintasoft.Barcode.SymbologySubsets.SwissQRCodeBarcodeSymbology

Requirements

Target Platforms: .NET 10; .NET 9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

See Also