VintaSoft Barcode .NET SDK 15.0: Руководство для .NET разработчика
Vintasoft.Barcode.SymbologySubsets Namespace / BarcodeSymbologySubsets Class / HIBCLICDataMatrix Property
Синтаксис Ремарки Example Требования Смотрите также
В этом разделе
    HIBCLICDataMatrix Свойство (BarcodeSymbologySubsets)
    В этом разделе
    Возвращает символику штрих-кода матрицы данных HIBC LIC.
    Синтаксис
    'Declaration
    
    Public Shared ReadOnly Property HIBCLICDataMatrix As HibcLicDataMatrixBarcodeSymbology
    
    
    public static HibcLicDataMatrixBarcodeSymbology HIBCLICDataMatrix { get; }
    
    
    public: __property static HibcLicDataMatrixBarcodeSymbology* get_HIBCLICDataMatrix();
    
    
    
    public:
    static property HibcLicDataMatrixBarcodeSymbology^ HIBCLICDataMatrix { HibcLicDataMatrixBarcodeSymbology^ get(); }
    Ремарки

    штрих-код HIBC LIC используется маркировщиками медицинских товаров для целей идентификации. Подмножество символов штрих-кода Data Matrix.

    Пример

    Этот C#/VB.NET код показывает, как сгенерировать и распознать штрих-код HIBC LIC:

    
    
    Imports Vintasoft.Barcode
    Imports Vintasoft.Barcode.BarcodeInfo
    Imports Vintasoft.Barcode.SymbologySubsets
    Imports Vintasoft.Imaging
    
    Class HIBCLICExample
        ''' <summary>
        ''' Generates and recognizes HIBC LIC 128 Primary barcode.
        ''' </summary>
        Public Shared Sub TestHibcLic128PrimaryBarcode()
            ' create HIBC LIC Primary data
            Dim primaryData As New HibcLicPrimaryDataStructure("A123", "BJC5D6E7", 1)
    
            ' create HIBC LIC barcode value
            Dim barcodeValue As New HibcLicValueItem(primaryData)
    
            ' create barcode writer
            Using writer As New BarcodeWriter()
                ' encode ISBT 128 Data Matrix barcode to writer settings
                BarcodeSymbologySubsets.HIBCLIC128.Encode(barcodeValue, writer.Settings)
    
                ' generate barcode image
                Using barcodeImage As VintasoftBitmap = writer.GetBarcodeAsVintasoftBitmap()
                    ' recognize barcode value
                    Dim recognizedValue As HibcLicValueItem = 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 HIBC LIC 128 Secondary barcode.
        ''' </summary>
        Public Shared Sub TestHibcLic128SecondaryBarcode()
            ' create HIBC LIC Secondary data
            Dim secondaryData As New HibcLicSecondaryDataStructure("200116", "YYMMDD", "10X3", Nothing)
    
            ' create HIBC LIC barcode value, used lick characer 'G' - check character from primary data
            Dim barcodeValue As New HibcLicValueItem(secondaryData, "G"C)
    
            ' create barcode writer
            Using writer As New BarcodeWriter()
                ' encode ISBT 128 Data Matrix barcode to writer settings
                BarcodeSymbologySubsets.HIBCLIC128.Encode(barcodeValue, writer.Settings)
    
                ' generate barcode image
                Using barcodeImage As VintasoftBitmap = writer.GetBarcodeAsVintasoftBitmap()
                    ' recognize barcode value
                    Dim recognizedValue As HibcLicValueItem = 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 HIBC LIC Data Matrix barcode.
        ''' </summary>
        Public Shared Sub TestHibcLicDataMatrixBarcode()
            ' create HIBC LIC Primary data
            Dim primaryData As New HibcLicPrimaryDataStructure("A123", "BJC5D6E7", 1)
    
            ' create HIBC LIC Secondary data
            Dim secondaryData As New HibcLicSecondaryDataStructure("210116", "YYMMDD", "10X3", Nothing)
    
            ' Additional Supplemental Data - date of manufacture
            Dim manufactureDateAdditionalData As New HibcLicManufactureDateAdditionalDataStructure(DateTime.Now)
    
            ' Additional Supplemental Data - quantity
            Dim quantityAdditionalData As New HibcLicQuantityAdditionalDataStructure(100)
    
            ' Additional Supplemental Data - quantity
            Dim serialNumberAdditionalData As New HibcLicSerialNumberAdditionalDataStructure("77DEFG45")
    
            ' create HIBC LIC barcode value
            Dim barcodeValue As New HibcLicValueItem(primaryData, secondaryData, manufactureDateAdditionalData, serialNumberAdditionalData, quantityAdditionalData)
    
            ' create barcode writer
            Using writer As New BarcodeWriter()
                ' encode ISBT 128 Data Matrix barcode to writer settings
                BarcodeSymbologySubsets.HIBCLICDataMatrix.Encode(barcodeValue, writer.Settings)
    
                ' generate barcode image
                Using barcodeImage As VintasoftBitmap = writer.GetBarcodeAsVintasoftBitmap()
                    ' recognize barcode value
                    Dim recognizedValue As HibcLicValueItem = 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>
        ''' Recognizes the HIBC LIC barcode from image.
        ''' </summary>
        ''' <param name="barcodeImage">The barcode image.</param>
        Private Shared Function Recognize(barcodeImage As VintasoftBitmap) As HibcLicValueItem
            ' create barcode reader
            Using reader As New BarcodeReader()
                reader.Settings.ScanDirection = ScanDirection.Vertical Or ScanDirection.Horizontal
                reader.Settings.AutomaticRecognition = True
    
                ' specify that HIBC LIC barcodes must be recognizeds
                reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.HIBCLIC128)
                reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.HIBCLIC39)
                reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.HIBCLICAztecCode)
                reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.HIBCLICDataMatrix)
                reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.HIBCLICQRCode)
    
                ' recognize barcodes
                Dim info As IBarcodeInfo = reader.ReadBarcodes(barcodeImage)(0)
    
                ' return HIBC LIC value
                Return DirectCast(info, HibcLicBarcodeInfo).HibcLicValue
            End Using
        End Function
    
        ''' <summary>
        ''' Prints HIBC LIC barcode value.
        ''' </summary>
        ''' <param name="value">The recognized value.</param>
        Private Shared Sub PrintValue(value As HibcLicValueItem)
            ' print value
            Console.WriteLine("Barcode value:    " & value.ToString())
    
            If value.PrimaryDataStructure IsNot Nothing AndAlso value.SecondaryDataStructure IsNot Nothing Then
                Console.WriteLine("Data structure:   Primary + Secondary")
            ElseIf value.PrimaryDataStructure IsNot Nothing Then
                Console.WriteLine("Data structure:   Primary")
            Else
                Console.WriteLine("Data structure:   Secondary")
            End If
    
            If value.PrimaryDataStructure IsNot Nothing Then
                Console.WriteLine(String.Format("LIC:              {0}", value.PrimaryDataStructure.Lic))
                Console.WriteLine(String.Format("Product ID:       {0}", value.PrimaryDataStructure.Pcn))
                Console.WriteLine(String.Format("Unit of Measure:  {0}", value.PrimaryDataStructure.UnitOfMeasureID))
            End If
    
            If value.SecondaryDataStructure IsNot Nothing Then
                If value.SecondaryDataStructure.ExpiryDateString IsNot Nothing Then
                    Console.WriteLine(String.Format("Expiry date:      {0} ({1}={2})", value.SecondaryDataStructure.ExpiryDate.ToShortDateString(), value.SecondaryDataStructure.ExpiryDateStringFormat, value.SecondaryDataStructure.ExpiryDateString))
                End If
                If value.SecondaryDataStructure.LotNumber IsNot Nothing Then
                    Console.WriteLine(String.Format("Lot number:       {0}", value.SecondaryDataStructure.LotNumber))
                End If
                If value.SecondaryDataStructure.SerialNumber IsNot Nothing Then
                    Console.WriteLine(String.Format("Serial number:    {0}", value.SecondaryDataStructure.SerialNumber))
                End If
                If value.PrimaryDataStructure Is Nothing Then
                    Console.WriteLine(String.Format("Link character:   {0}", value.LinkCharacter))
                End If
            End If
    
            If value.AdditionalData IsNot Nothing Then
                For Each additionalData As HibcLicAdditionalDataStructure In value.AdditionalData
                    If TypeOf additionalData Is HibcLicSerialNumberAdditionalDataStructure Then
                        Console.WriteLine(String.Format("Serial number:    {0}", DirectCast(additionalData, HibcLicSerialNumberAdditionalDataStructure).SerialNumber))
                    End If
                    If TypeOf additionalData Is HibcLicManufactureDateAdditionalDataStructure Then
                        Console.WriteLine(String.Format("Manufacture date: {0}", DirectCast(additionalData, HibcLicManufactureDateAdditionalDataStructure).ManufactureDate.ToShortDateString()))
                    End If
                    If TypeOf additionalData Is HibcLicExpiryDateAdditionalDataStructure Then
                        Console.WriteLine(String.Format("Expiry date:      {0}", DirectCast(additionalData, HibcLicExpiryDateAdditionalDataStructure).ExpiryDate.ToShortDateString()))
                    End If
                    If TypeOf additionalData Is HibcLicQuantityAdditionalDataStructure Then
                        Console.WriteLine(String.Format("Quantity:         {0}", DirectCast(additionalData, HibcLicQuantityAdditionalDataStructure).Quantity))
                    End If
                Next
            End If
    
            Console.WriteLine(String.Format("Check character:  {0}", value.CheckCharacter))
        End Sub
    End Class
    
    
    
    using System;
    
    using Vintasoft.Barcode;
    using Vintasoft.Barcode.BarcodeInfo;
    using Vintasoft.Barcode.SymbologySubsets;
    using Vintasoft.Imaging;
    
    class HIBCLICExample
    {
        /// <summary>
        /// Generates and recognizes HIBC LIC 128 Primary barcode.
        /// </summary>
        public static void TestHibcLic128PrimaryBarcode()
        {
            // create HIBC LIC Primary data
            HibcLicPrimaryDataStructure primaryData = new HibcLicPrimaryDataStructure("A123", "BJC5D6E7", 1);
    
            // create HIBC LIC barcode value
            HibcLicValueItem barcodeValue = new HibcLicValueItem(primaryData);
    
            // create barcode writer
            using (BarcodeWriter writer = new BarcodeWriter())
            {
                // encode ISBT 128 Data Matrix barcode to writer settings
                BarcodeSymbologySubsets.HIBCLIC128.Encode(barcodeValue, writer.Settings);
    
                // generate barcode image
                using (VintasoftBitmap barcodeImage = writer.GetBarcodeAsVintasoftBitmap())
                {
                    // recognize barcode value
                    HibcLicValueItem recognizedValue = Recognize(barcodeImage);
    
                    // check value
                    if (barcodeValue.ToString() != recognizedValue.ToString())
                        throw new ApplicationException();
    
                    // privt value
                    PrintValue(recognizedValue);
                }
            }
        }
    
        /// <summary>
        /// Generates and recognizes HIBC LIC 128 Secondary barcode.
        /// </summary>
        public static void TestHibcLic128SecondaryBarcode()
        {
            // create HIBC LIC Secondary data
            HibcLicSecondaryDataStructure secondaryData = new HibcLicSecondaryDataStructure("200116", "YYMMDD", "10X3", null);
    
            // create HIBC LIC barcode value, used lick characer 'G' - check character from primary data
            HibcLicValueItem barcodeValue = new HibcLicValueItem(secondaryData, 'G');
    
            // create barcode writer
            using (BarcodeWriter writer = new BarcodeWriter())
            {
                // encode ISBT 128 Data Matrix barcode to writer settings
                BarcodeSymbologySubsets.HIBCLIC128.Encode(barcodeValue, writer.Settings);
    
                // generate barcode image
                using (VintasoftBitmap barcodeImage = writer.GetBarcodeAsVintasoftBitmap())
                {
                    // recognize barcode value
                    HibcLicValueItem recognizedValue = Recognize(barcodeImage);
    
                    // check value
                    if (barcodeValue.ToString() != recognizedValue.ToString())
                        throw new ApplicationException();
    
                    // privt value
                    PrintValue(recognizedValue);
                }
            }
        }
    
        /// <summary>
        /// Generates and recognizes HIBC LIC Data Matrix barcode.
        /// </summary>
        public static void TestHibcLicDataMatrixBarcode()
        {
            // create HIBC LIC Primary data
            HibcLicPrimaryDataStructure primaryData = new HibcLicPrimaryDataStructure("A123", "BJC5D6E7", 1);
    
            // create HIBC LIC Secondary data
            HibcLicSecondaryDataStructure secondaryData = new HibcLicSecondaryDataStructure("210116", "YYMMDD", "10X3", null);
    
            // Additional Supplemental Data - date of manufacture
            HibcLicManufactureDateAdditionalDataStructure manufactureDateAdditionalData = 
                new HibcLicManufactureDateAdditionalDataStructure(DateTime.Now);
    
            // Additional Supplemental Data - quantity
            HibcLicQuantityAdditionalDataStructure quantityAdditionalData =
                new HibcLicQuantityAdditionalDataStructure(100);
    
            // Additional Supplemental Data - quantity
            HibcLicSerialNumberAdditionalDataStructure serialNumberAdditionalData =
                new HibcLicSerialNumberAdditionalDataStructure("77DEFG45");
    
            // create HIBC LIC barcode value
            HibcLicValueItem barcodeValue = new HibcLicValueItem(
                primaryData, secondaryData, manufactureDateAdditionalData, serialNumberAdditionalData, quantityAdditionalData);
    
            // create barcode writer
            using (BarcodeWriter writer = new BarcodeWriter())
            {
                // encode ISBT 128 Data Matrix barcode to writer settings
                BarcodeSymbologySubsets.HIBCLICDataMatrix.Encode(barcodeValue, writer.Settings);
    
                // generate barcode image
                using (VintasoftBitmap barcodeImage = writer.GetBarcodeAsVintasoftBitmap())
                {
                    // recognize barcode value
                    HibcLicValueItem recognizedValue = Recognize(barcodeImage);
    
                    // check value
                    if (barcodeValue.ToString() != recognizedValue.ToString())
                        throw new ApplicationException();
    
                    // privt value
                    PrintValue(recognizedValue);
                }
            }
        }
    
    
        /// <summary>
        /// Recognizes the HIBC LIC barcode from image.
        /// </summary>
        /// <param name="barcodeImage">The barcode image.</param>
        private static HibcLicValueItem Recognize(VintasoftBitmap barcodeImage)
        {
            // create barcode reader
            using (BarcodeReader reader = new BarcodeReader())
            {
                reader.Settings.ScanDirection = ScanDirection.Vertical | ScanDirection.Horizontal;
                reader.Settings.AutomaticRecognition = true;
    
                // specify that HIBC LIC barcodes must be recognizeds
                reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.HIBCLIC128);
                reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.HIBCLIC39);
                reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.HIBCLICAztecCode);
                reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.HIBCLICDataMatrix);
                reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.HIBCLICQRCode);
           
                // recognize barcodes
                IBarcodeInfo info = reader.ReadBarcodes(barcodeImage)[0];
    
                // return HIBC LIC value
                return ((HibcLicBarcodeInfo)info).HibcLicValue;
            }
        }
    
        /// <summary>
        /// Prints HIBC LIC barcode value.
        /// </summary>
        /// <param name="value">The recognized value.</param>
        private static void PrintValue(HibcLicValueItem value)
        {
            // print value
            Console.WriteLine("Barcode value:    " + value.ToString());
    
            if (value.PrimaryDataStructure != null && value.SecondaryDataStructure != null)
                Console.WriteLine("Data structure:   Primary + Secondary");
            else if (value.PrimaryDataStructure != null)
                Console.WriteLine("Data structure:   Primary");
            else
                Console.WriteLine("Data structure:   Secondary");
    
            if (value.PrimaryDataStructure != null)
            {
                Console.WriteLine(string.Format("LIC:              {0}", value.PrimaryDataStructure.Lic));
                Console.WriteLine(string.Format("Product ID:       {0}", value.PrimaryDataStructure.Pcn));
                Console.WriteLine(string.Format("Unit of Measure:  {0}", value.PrimaryDataStructure.UnitOfMeasureID));
            }
    
            if (value.SecondaryDataStructure != null)
            {
                if (value.SecondaryDataStructure.ExpiryDateString != null)
                {
                    Console.WriteLine(string.Format("Expiry date:      {0} ({1}={2})",
                        value.SecondaryDataStructure.ExpiryDate.ToShortDateString(),
                        value.SecondaryDataStructure.ExpiryDateStringFormat,
                        value.SecondaryDataStructure.ExpiryDateString));
                }
                if (value.SecondaryDataStructure.LotNumber != null)
                    Console.WriteLine(string.Format("Lot number:       {0}", value.SecondaryDataStructure.LotNumber));
                if (value.SecondaryDataStructure.SerialNumber != null)
                    Console.WriteLine(string.Format("Serial number:    {0}", value.SecondaryDataStructure.SerialNumber));
                if (value.PrimaryDataStructure == null)
                    Console.WriteLine(string.Format("Link character:   {0}", value.LinkCharacter));
            }
    
            if (value.AdditionalData != null)
            {
                foreach (HibcLicAdditionalDataStructure additionalData in value.AdditionalData)
                {
                    if (additionalData is HibcLicSerialNumberAdditionalDataStructure)
                        Console.WriteLine(string.Format("Serial number:    {0}", ((HibcLicSerialNumberAdditionalDataStructure)additionalData).SerialNumber));
                    if (additionalData is HibcLicManufactureDateAdditionalDataStructure)
                        Console.WriteLine(string.Format("Manufacture date: {0}", ((HibcLicManufactureDateAdditionalDataStructure)additionalData).ManufactureDate.ToShortDateString()));
                    if (additionalData is HibcLicExpiryDateAdditionalDataStructure)
                        Console.WriteLine(string.Format("Expiry date:      {0}", ((HibcLicExpiryDateAdditionalDataStructure)additionalData).ExpiryDate.ToShortDateString()));
                    if (additionalData is HibcLicQuantityAdditionalDataStructure)
                        Console.WriteLine(string.Format("Quantity:         {0}", ((HibcLicQuantityAdditionalDataStructure)additionalData).Quantity));
                }
            }
    
            Console.WriteLine(string.Format("Check character:  {0}", value.CheckCharacter));
        }
    }
    
    

    Требования

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

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