VintaSoft Barcode .NET SDK 15.1: Руководство для .NET разработчика
Vintasoft.Barcode.SymbologySubsets Namespace / SwissQRCodeBarcodeSymbology Class
Члены типа Объект Синтаксис Example Иерархия Требования Смотрите также
В этом разделе
    Класс SwissQRCodeBarcodeSymbology
    В этом разделе
    Определяет символику штрих-кода Swiss QR Code - подмножество символики штрих-кода QR.
    Объектная модель
    BarcodeSymbologySubset SwissQRCodeBarcodeSymbology
    Синтаксис
    'Declaration
    
    Public Class SwissQRCodeBarcodeSymbology
       Inherits BarcodeSymbologySubset
    
    
    public class SwissQRCodeBarcodeSymbology : BarcodeSymbologySubset
    
    
    public __gc class SwissQRCodeBarcodeSymbology : public BarcodeSymbologySubset*
    
    
    public ref class SwissQRCodeBarcodeSymbology : public BarcodeSymbologySubset^
    
    
    Пример

    Вот C#/VB.NET код, который демонстрирует, как сгенерировать и распознать штрих-код Swiss QR Code:

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

    Иерархия наследования

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

    Требования

    Целевые платформы: .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

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