VintaSoft Barcode .NET SDK 16.0: Documentation for .NET developer
Vintasoft.Barcode.SymbologySubsets Namespace / BarcodeSymbologySubsets Class / ISBT128DataMatrix Property
Syntax Remarks Example Requirements SeeAlso
In This Topic
ISBT128DataMatrix Property (BarcodeSymbologySubsets)
In This Topic
Gets the ISBT 128 Data Matrix barcode symbology.
Syntax
'Declaration

Public Shared ReadOnly Property ISBT128DataMatrix As Isbt128DataMatrixBarcodeSymbology

public static Isbt128DataMatrixBarcodeSymbology ISBT128DataMatrix { get; }

Remarks

ISBT 128 is a global standard for identefication, labeling, and information transfer of medical products of human origin. Subset of Data Matrix barcode symbology.

Example

This C#/VB.NET code shows how to generate and recognize ISBT 128 Data Matrix barcode:



Imports Vintasoft.Barcode
Imports Vintasoft.Barcode.BarcodeInfo
Imports Vintasoft.Barcode.SymbologySubsets
Imports Vintasoft.Imaging

Class ISBT128DataMatrixExample
    ''' <summary>
    ''' Generates and recognizes ISBT 128 barcode use value item.
    ''' </summary>
    Public Shared Sub TestUseValueItem()
        ' create compound message - 3 data structures
        ' 4 - referencing an entry in an ICCBBA maintained table, requires 001, 003, 005 data structures
        Dim compoundMessage As New IsbtCompoundMessage(3, 4)

        ' Donation Identification Number
        Dim dataValue001 As IsbtDataValue = IsbtDataStructures.GetDataStructureByNumber(1).Parse("=A99981712345600")

        ' Product Code
        Dim dataValue003 As IsbtDataValue = IsbtDataStructures.GetDataStructureByNumber(3).Parse("=<S1200100")

        ' Expiration Date
        Dim dataValue005 As IsbtDataValue = IsbtDataStructures.GetDataStructureByNumber(5).Parse("&>0271322359")

        ' create ISBT 128 barcode value
        Dim barcodeValue As New IsbtValueItem(compoundMessage, dataValue001, dataValue003, dataValue005)

        ' create barcode writer
        Using writer As New BarcodeWriter()
            ' encode ISBT 128 Data Matrix barcode to writer settings
            BarcodeSymbologySubsets.ISBT128DataMatrix.Encode(barcodeValue, writer.Settings)

            ' generate barcode image
            Using barcodeImage As VintasoftBitmap = writer.GetBarcodeAsVintasoftBitmap()
                ' recognize barcode value
                Dim recognizedValue As IsbtValueItem = Recognize(barcodeImage)

                ' check value
                If barcodeValue.ToString() <> recognizedValue.ToString() Then
                    Throw New ApplicationException()
                End If

                ' privt value
                PrintValue(recognizedValue)
            End Using
        End Using
    End Sub


    ''' <summary>
    ''' Generates and recognizes ISBT 128 barcode use text value.
    ''' </summary>
    Public Shared Sub TestUseTextValue()
        Dim barcodeValue As String = "=+03004=A99981712345600=<S1200100&>0271322359"

        ' create barcode writer
        Using writer As New BarcodeWriter()
            ' encode ISBT 128 Data Matrix barcode to writer settings
            BarcodeSymbologySubsets.ISBT128DataMatrix.Encode(barcodeValue, writer.Settings)

            ' generate barcode image
            Using barcodeImage As VintasoftBitmap = writer.GetBarcodeAsVintasoftBitmap()
                ' recognize barcode value
                Dim recognizedValue As IsbtValueItem = Recognize(barcodeImage)

                ' check value
                If barcodeValue <> recognizedValue.ToString() Then
                    Throw New ApplicationException()
                End If

                ' privt value
                PrintValue(recognizedValue)
            End Using
        End Using
    End Sub


    ''' <summary>
    ''' Recognizes the ISBT 128 barcode from image.
    ''' </summary>
    ''' <param name="barcodeImage">The barcode image.</param>
    Private Shared Function Recognize(barcodeImage As VintasoftBitmap) As IsbtValueItem
        ' create barcode reader
        Using reader As New BarcodeReader()
            reader.Settings.ScanDirection = ScanDirection.Vertical Or ScanDirection.Horizontal
            reader.Settings.AutomaticRecognition = True

            ' specify that ISBT 128 barcode must be recognizeds
            reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.ISBT128)
            reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.ISBT128DataMatrix)

            ' recognize barcodes
            Dim info As IBarcodeInfo = reader.ReadBarcodes(barcodeImage)(0)

            ' return ISBT 128 value
            Return DirectCast(info, IsbtBarcodeInfo).IsbtValue
        End Using
    End Function

    ''' <summary>
    ''' Prints ISBT 128 barcode value.
    ''' </summary>
    ''' <param name="recognizedValue">The recognized value.</param>
    Private Shared Sub PrintValue(recognizedValue As IsbtValueItem)
        ' print value
        Console.WriteLine("Barcode value: " & recognizedValue.ToString())
        Dim value As IsbtDataValue() = recognizedValue.DataValues
        For Each dataValue As IsbtDataValue In value
            Console.WriteLine(String.Format("{0} ({1}): {2}", dataValue.DataStructure.Name, dataValue.DataStructure.Number, dataValue.DataContent))
        Next
    End Sub
End Class


using System;

using Vintasoft.Barcode;
using Vintasoft.Barcode.BarcodeInfo;
using Vintasoft.Barcode.SymbologySubsets;
using Vintasoft.Imaging;

class ISBT128DataMatrixExample
{
    /// <summary>
    /// Generates and recognizes ISBT 128 barcode use value item.
    /// </summary>
    public static void TestUseValueItem()
    {
        // create compound message - 3 data structures
        // 4 - referencing an entry in an ICCBBA maintained table, requires 001, 003, 005 data structures
        IsbtCompoundMessage compoundMessage = new IsbtCompoundMessage(3, 4);

        // Donation Identification Number
        IsbtDataValue dataValue001 = IsbtDataStructures.GetDataStructureByNumber(001).Parse("=A99981712345600");

        // Product Code
        IsbtDataValue dataValue003 = IsbtDataStructures.GetDataStructureByNumber(003).Parse("=<S1200100");

        // Expiration Date
        IsbtDataValue dataValue005 = IsbtDataStructures.GetDataStructureByNumber(005).Parse("&>0271322359");

        // create ISBT 128 barcode value
        IsbtValueItem barcodeValue = new IsbtValueItem(compoundMessage, dataValue001, dataValue003, dataValue005);

        // create barcode writer
        using (BarcodeWriter writer = new BarcodeWriter())
        {
            // encode ISBT 128 Data Matrix barcode to writer settings
            BarcodeSymbologySubsets.ISBT128DataMatrix.Encode(barcodeValue, writer.Settings);

            // generate barcode image
            using (VintasoftBitmap barcodeImage = writer.GetBarcodeAsVintasoftBitmap())
            {
                // recognize barcode value
                IsbtValueItem recognizedValue = Recognize(barcodeImage);

                // check value
                if (barcodeValue.ToString() != recognizedValue.ToString())
                    throw new ApplicationException();

                // privt value
                PrintValue(recognizedValue);
            }
        }
    }


    /// <summary>
    /// Generates and recognizes ISBT 128 barcode use text value.
    /// </summary>
    public static void TestUseTextValue()
    {
        string barcodeValue = @"=+03004=A99981712345600=<S1200100&>0271322359";

        // create barcode writer
        using (BarcodeWriter writer = new BarcodeWriter())
        {
            // encode ISBT 128 Data Matrix barcode to writer settings
            BarcodeSymbologySubsets.ISBT128DataMatrix.Encode(barcodeValue, writer.Settings);

            // generate barcode image
            using (VintasoftBitmap barcodeImage = writer.GetBarcodeAsVintasoftBitmap())
            {
                // recognize barcode value
                IsbtValueItem recognizedValue = Recognize(barcodeImage);

                // check value
                if (barcodeValue != recognizedValue.ToString())
                    throw new ApplicationException();

                // privt value
                PrintValue(recognizedValue);
            }
        }
    }


    /// <summary>
    /// Recognizes the ISBT 128 barcode from image.
    /// </summary>
    /// <param name="barcodeImage">The barcode image.</param>
    private static IsbtValueItem Recognize(VintasoftBitmap barcodeImage)
    {
        // create barcode reader
        using (BarcodeReader reader = new BarcodeReader())
        {
            reader.Settings.ScanDirection = ScanDirection.Vertical | ScanDirection.Horizontal;
            reader.Settings.AutomaticRecognition = true;

            // specify that ISBT 128 barcode must be recognizeds
            reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.ISBT128);
            reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.ISBT128DataMatrix);

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

            // return ISBT 128 value
            return ((IsbtBarcodeInfo)info).IsbtValue;
        }
    }

    /// <summary>
    /// Prints ISBT 128 barcode value.
    /// </summary>
    /// <param name="recognizedValue">The recognized value.</param>
    private static void PrintValue(IsbtValueItem recognizedValue)
    {
        // print value
        Console.WriteLine("Barcode value: " + recognizedValue.ToString());
        IsbtDataValue[] value = recognizedValue.DataValues;
        foreach (IsbtDataValue dataValue in value)
        {
            Console.WriteLine(string.Format("{0} ({1}): {2}", dataValue.DataStructure.Name, dataValue.DataStructure.Number, dataValue.DataContent));
        }
    }
}

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