
public sealed class NonDataFlags
public __gc __sealed class NonDataFlags
public ref class NonDataFlags sealed
'Declaration Public NotInheritable Class NonDataFlags
Вот C#/VB.NET код, который демонстрирует, как сгенерировать и распознать флаги, которые не относятся к данным, в штрих-коде.
Imports System.Collections.Generic Imports Vintasoft.Barcode Imports Vintasoft.Barcode.BarcodeInfo Imports Vintasoft.Imaging ''' <summary> ''' Test that shows how to create barcodes with data flags. ''' </summary> Class NonDataFlagsExample ''' <summary> ''' Runs the test. ''' </summary> Public Shared Sub Test() ' create image with Code128 barcode with FNC1 flag Using image As VintasoftBitmap = WriteFlagUsingValueProperty(BarcodeType.Code128, "", NonDataFlags.Fnc1, "abc") ' read barcode from image ReadBarcode(image, BarcodeType.Code128) End Using ' create image with Code128 barcode with FNC1 flag Using image As VintasoftBitmap = WriteFlagUsingValueItemsProperty(BarcodeType.Code128, "123", NonDataFlags.Fnc1, "456") ' read barcode from image ReadBarcode(image, BarcodeType.Code128) End Using ' create the barcode value with multiple FNC1 flags Dim barcodeValue As String = NonDataFlags.Fnc1.Name barcodeValue += "A" & NonDataFlags.Fnc1.Name barcodeValue += "B" & NonDataFlags.Fnc1.Name barcodeValue += "C" & NonDataFlags.Fnc1.Name ' create the barcode writer Using writer As New BarcodeWriter() ' specify that writer must generate Code128 barcode writer.Settings.Barcode = BarcodeType.Code128 writer.Settings.ProcessSpecialSymbols = True ' set the barcode value writer.Settings.Value = barcodeValue ' create image with Code128 barcode with multiple FNC1 flags Using image As VintasoftBitmap = writer.GetBarcodeAsVintasoftBitmap() ' read barcode from image ReadBarcode(image, BarcodeType.Code128) End Using End Using ' create image with DataMatrix barcode with FNC1 flag Using image As VintasoftBitmap = WriteFlagUsingValueItemsProperty(BarcodeType.DataMatrix, "DataMatrix", NonDataFlags.Fnc1, "!") ' read barcode from image ReadBarcode(image, BarcodeType.DataMatrix) End Using ' create image with QR barcode with ECI123456 flag Using image As VintasoftBitmap = WriteFlagUsingValueProperty(BarcodeType.QR, "", NonDataFlags.CreateECICharacter(123456), "QR Test ECI123456") ' read barcode from image ReadBarcode(image, BarcodeType.QR) End Using ' create image with DataMatrix barcode with Macro05 flag Using image As VintasoftBitmap = WriteFlagUsingValueItemsProperty(BarcodeType.DataMatrix, "", NonDataFlags.Macro05, "BarcodeData") ' read barcode from image ReadBarcode(image, BarcodeType.DataMatrix) End Using End Sub ''' <summary> ''' Writes a data flag to barcode using WriterSettings.Value property. ''' </summary> Private Shared Function WriteFlagUsingValueProperty(barcodeType As BarcodeType, leftValuePart As String, flag As NonDataFlagValueItem, rightValuePart As String) As VintasoftBitmap ' create the barcode writer Using writer As New BarcodeWriter() ' specify that writer must generate barcode of specified type writer.Settings.Barcode = barcodeType ' specify that writer must process special characters in the barcode value writer.Settings.ProcessSpecialSymbols = True ' set the barcode value writer.Settings.Value = leftValuePart & flag.Name & rightValuePart ' create image with barcode Return writer.GetBarcodeAsVintasoftBitmap() End Using End Function ''' <summary> ''' Writes a data flag to barcode using WriterSettings.ValueItems property. ''' </summary> Private Shared Function WriteFlagUsingValueItemsProperty(barcodeType As BarcodeType, leftValuePart As String, flag As NonDataFlagValueItem, rightValuePart As String) As VintasoftBitmap ' create the barcode writer Using writer As New BarcodeWriter() ' specify that writer must generate barcode of specified type writer.Settings.Barcode = barcodeType ' create the barcode value items Dim items As New List(Of ValueItemBase)() If leftValuePart <> "" Then items.Add(New TextValueItem(leftValuePart)) End If items.Add(flag) If rightValuePart <> "" Then items.Add(New TextValueItem(rightValuePart)) End If ' set the barcode value items writer.Settings.ValueItems = items.ToArray() ' create image with barcode Return writer.GetBarcodeAsVintasoftBitmap() End Using End Function ''' <summary> ''' Reads a barcode and shows the recognized barcode value. ''' </summary> Private Shared Sub ReadBarcode(image As VintasoftBitmap, barcodeType As BarcodeType) ' create the barcode reader Using reader As New BarcodeReader() ' specify that reader must search for barcodes of specified type reader.Settings.ScanBarcodeTypes = barcodeType ' reader barcode from image Dim barcodeInfo As IBarcodeInfo = reader.ReadBarcodes(image)(0) barcodeInfo.ShowNonDataFlagsInValue = False Console.WriteLine("Barcode value without flags: {0}", barcodeInfo.Value) barcodeInfo.ShowNonDataFlagsInValue = True Console.WriteLine("Barcode value with flags: {0}", barcodeInfo.Value) Console.WriteLine("Barcode value items:") For i As Integer = 0 To barcodeInfo.ValueItems.Length - 1 Dim valueItem As ValueItemBase = barcodeInfo.ValueItems(i) Console.WriteLine(" [{0}]: {1}", valueItem.[GetType]().Name, valueItem) Next End Using Console.WriteLine() End Sub End Class
using System; using System.Collections.Generic; using Vintasoft.Barcode; using Vintasoft.Barcode.BarcodeInfo; using Vintasoft.Imaging; /// <summary> /// Test that shows how to create barcodes with data flags. /// </summary> class NonDataFlagsExample { /// <summary> /// Runs the test. /// </summary> public static void Test() { // create image with Code128 barcode with FNC1 flag using (VintasoftBitmap image = WriteFlagUsingValueProperty(BarcodeType.Code128, "", NonDataFlags.Fnc1, "abc")) { // read barcode from image ReadBarcode(image, BarcodeType.Code128); } // create image with Code128 barcode with FNC1 flag using (VintasoftBitmap image = WriteFlagUsingValueItemsProperty(BarcodeType.Code128, "123", NonDataFlags.Fnc1, "456")) { // read barcode from image ReadBarcode(image, BarcodeType.Code128); } // create the barcode value with multiple FNC1 flags string barcodeValue = NonDataFlags.Fnc1.Name; barcodeValue += "A" + NonDataFlags.Fnc1.Name; barcodeValue += "B" + NonDataFlags.Fnc1.Name; barcodeValue += "C" + NonDataFlags.Fnc1.Name; // create the barcode writer using (BarcodeWriter writer = new BarcodeWriter()) { // specify that writer must generate Code128 barcode writer.Settings.Barcode = BarcodeType.Code128; writer.Settings.ProcessSpecialSymbols = true; // set the barcode value writer.Settings.Value = barcodeValue; // create image with Code128 barcode with multiple FNC1 flags using (VintasoftBitmap image = writer.GetBarcodeAsVintasoftBitmap()) { // read barcode from image ReadBarcode(image, BarcodeType.Code128); } } // create image with DataMatrix barcode with FNC1 flag using (VintasoftBitmap image = WriteFlagUsingValueItemsProperty( BarcodeType.DataMatrix, "DataMatrix", NonDataFlags.Fnc1, "!")) { // read barcode from image ReadBarcode(image, BarcodeType.DataMatrix); } // create image with QR barcode with ECI123456 flag using (VintasoftBitmap image = WriteFlagUsingValueProperty( BarcodeType.QR, "", NonDataFlags.CreateECICharacter(123456), "QR Test ECI123456")) { // read barcode from image ReadBarcode(image, BarcodeType.QR); } // create image with DataMatrix barcode with Macro05 flag using (VintasoftBitmap image = WriteFlagUsingValueItemsProperty( BarcodeType.DataMatrix, "", NonDataFlags.Macro05, "BarcodeData")) { // read barcode from image ReadBarcode(image, BarcodeType.DataMatrix); } } /// <summary> /// Writes a data flag to barcode using WriterSettings.Value property. /// </summary> static VintasoftBitmap WriteFlagUsingValueProperty( BarcodeType barcodeType, string leftValuePart, NonDataFlagValueItem flag, string rightValuePart) { // create the barcode writer using (BarcodeWriter writer = new BarcodeWriter()) { // specify that writer must generate barcode of specified type writer.Settings.Barcode = barcodeType; // specify that writer must process special characters in the barcode value writer.Settings.ProcessSpecialSymbols = true; // set the barcode value writer.Settings.Value = leftValuePart + flag.Name + rightValuePart; // create image with barcode return writer.GetBarcodeAsVintasoftBitmap(); } } /// <summary> /// Writes a data flag to barcode using WriterSettings.ValueItems property. /// </summary> static VintasoftBitmap WriteFlagUsingValueItemsProperty( BarcodeType barcodeType, string leftValuePart, NonDataFlagValueItem flag, string rightValuePart) { // create the barcode writer using (BarcodeWriter writer = new BarcodeWriter()) { // specify that writer must generate barcode of specified type writer.Settings.Barcode = barcodeType; // create the barcode value items List<ValueItemBase> items = new List<ValueItemBase>(); if (leftValuePart != "") items.Add(new TextValueItem(leftValuePart)); items.Add(flag); if (rightValuePart != "") items.Add(new TextValueItem(rightValuePart)); // set the barcode value items writer.Settings.ValueItems = items.ToArray(); // create image with barcode return writer.GetBarcodeAsVintasoftBitmap(); } } /// <summary> /// Reads a barcode and shows the recognized barcode value. /// </summary> static void ReadBarcode(VintasoftBitmap image, BarcodeType barcodeType) { // create the barcode reader using (BarcodeReader reader = new BarcodeReader()) { // specify that reader must search for barcodes of specified type reader.Settings.ScanBarcodeTypes = barcodeType; // reader barcode from image IBarcodeInfo barcodeInfo = reader.ReadBarcodes(image)[0]; barcodeInfo.ShowNonDataFlagsInValue = false; Console.WriteLine("Barcode value without flags: {0}", barcodeInfo.Value); barcodeInfo.ShowNonDataFlagsInValue = true; Console.WriteLine("Barcode value with flags: {0}", barcodeInfo.Value); Console.WriteLine("Barcode value items:"); for (int i = 0; i < barcodeInfo.ValueItems.Length; i++) { ValueItemBase valueItem = barcodeInfo.ValueItems[i]; Console.WriteLine(" [{0}]: {1}", valueItem.GetType().Name, valueItem); } } Console.WriteLine(); } }
System.Object
Vintasoft.Barcode.BarcodeInfo.NonDataFlags
Целевые платформы: .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5
Члены типа NonDataFlags
Пространство имен Vintasoft.Barcode.BarcodeInfo
NonDataFlagValueItem
ShowNonDataFlagsInValue
ProcessSpecialSymbols
EciCharacterValueItem
AztecStructuredAppendCharacter
DataMatrixStructuredAppendCharacter
PDF417StructuredAppendCharacter
QRStructuredAppendCharacter