ISBT128DataMatrix Свойство (BarcodeSymbologySubsets)
В этом разделе
Возвращает символику штрих-кода ISBT 128 Data Matrix.
Синтаксис
Ремарки
ISBT 128 - это глобальный стандарт идентификации, маркировки, и передача информации о медицинских изделиях человеческого происхождения. Подмножество символов штрих-кода Data Matrix.
Пример
Вот C#/VB.NET код, который демонстрирует, как сгенерировать и распознать штрих-код ISBT 128 Data Matrix.
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));
}
}
}
Требования
Целевые платформы: .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5
Смотрите также