
public class GS1Codec
public __gc class GS1Codec
public ref class GS1Codec
'Declaration Public Class GS1Codec
Вот C#/VB.NET код, который демонстрирует, как создать штрих-код Code128 с GS1 информацией (GS1-128) и прочитать сгенерированный штрих-код.
Imports System.Text Imports Vintasoft.Barcode Imports Vintasoft.Barcode.BarcodeInfo Imports Vintasoft.Barcode.GS1 Imports Vintasoft.Barcode.SymbologySubsets Imports Vintasoft.Imaging ''' <summary> ''' Test that shows how to encode the barcode data in GS1 format using the GS1Codec class, ''' create image with GS1-128 barcode, ''' read GS1-128 barcode from image and ''' parse data stored in GS1 format. ''' </summary> Class GS1CodecExample ''' <summary> ''' Runs the test. ''' </summary> Public Shared Sub TestGS1Codec() Dim valueVisible As Boolean = True ' form the GS1 Application identifiers Dim aiValues As GS1ApplicationIdentifierValue() = New GS1ApplicationIdentifierValue(3) {} Dim ai As GS1ApplicationIdentifier ' 01 - Global Trade Item Number ai = GS1ApplicationIdentifiers.FindApplicationIdentifier("01") aiValues(0) = New GS1ApplicationIdentifierValue(ai, "0123456789123C") ' 310 - Net weight, kilograms ai = GS1ApplicationIdentifiers.FindApplicationIdentifier("310") aiValues(1) = New GS1ApplicationIdentifierValue(ai, "0012.55") ' 30 - Count of Items ai = GS1ApplicationIdentifiers.FindApplicationIdentifier("30") aiValues(2) = New GS1ApplicationIdentifierValue(ai, "10") ' 90 - Company Internal Information ai = GS1ApplicationIdentifiers.FindApplicationIdentifier("90") aiValues(3) = New GS1ApplicationIdentifierValue(ai, "ABCabc12345") ' get GS1 printable value Dim printableValue As New StringBuilder() For Each value As GS1ApplicationIdentifierValue In aiValues printableValue.Append(value) Next ' create the barcode writer Using writer As New BarcodeWriter() ' specify that writer must create output image as 24-bpp image writer.Settings.PixelFormat = BarcodeImagePixelFormat.Bgr24 ' specify that writer must generate Code128 barcode writer.Settings.Barcode = BarcodeType.Code128 ' encode GS1 value in GS1-128 symbology writer.Settings.Value = GS1Codec.GS1_128.Encode(aiValues, writer.Settings) ' set printable value If valueVisible Then writer.Settings.ValueVisible = True writer.Settings.PrintableValue = printableValue.ToString() Else writer.Settings.ValueVisible = False End If ' create image with barcode Using barcodeImage As VintasoftBitmap = writer.GetBarcodeAsVintasoftBitmap() ' delete aiValues array aiValues = Nothing ' create barcode reader Using reader As New BarcodeReader() ' specify that reader must search for GS1-128 barcodes only reader.Settings.ScanBarcodeTypes = BarcodeType.None reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.GS1_128) ' read barcode from image Dim infos As IBarcodeInfo() = reader.ReadBarcodes(barcodeImage) ' gets a GS1 Application identifiers from barcode value aiValues = DirectCast(infos(0), GS1BarcodeInfo).ApplicationIdentifierValues printableValue = New StringBuilder() ' print Application identifiers values For i As Integer = 0 To aiValues.Length - 1 Dim aiValue As GS1ApplicationIdentifierValue = aiValues(i) ai = aiValue.ApplicationIdentifier Console.WriteLine(String.Format("[{0}] {1}", i + 1, aiValue)) Console.WriteLine(String.Format("Application identifier : {0}", ai.ApplicationIdentifier)) Console.WriteLine(String.Format("Value : {0}", aiValue.Value)) Console.WriteLine(String.Format("Data title : {0}", ai.DataTitle)) Console.WriteLine(String.Format("Data content : {0}", ai.DataContent)) Console.WriteLine(String.Format("Format : {0}", ai.Format)) Console.WriteLine(String.Format("Is contains decimal point: {0}", ai.IsContainsDecimalPoint)) Console.WriteLine(String.Format("Is variable length : {0}", ai.IsVariableLength)) Console.WriteLine() printableValue.Append(aiValue.ToString()) Next ' print GS1 printable value Console.WriteLine("Printable GS1 value: " & printableValue.ToString()) End Using End Using End Using End Sub End Class
using System; using System.Text; using Vintasoft.Barcode; using Vintasoft.Barcode.BarcodeInfo; using Vintasoft.Barcode.GS1; using Vintasoft.Barcode.SymbologySubsets; using Vintasoft.Imaging; /// <summary> /// Test that shows how to encode the barcode data in GS1 format using the GS1Codec class, /// create image with GS1-128 barcode, /// read GS1-128 barcode from image and /// parse data stored in GS1 format. /// </summary> class GS1CodecExample { /// <summary> /// Runs the test. /// </summary> public static void TestGS1Codec() { bool valueVisible = true; // form the GS1 Application identifiers GS1ApplicationIdentifierValue[] aiValues = new GS1ApplicationIdentifierValue[4]; GS1ApplicationIdentifier ai; // 01 - Global Trade Item Number ai = GS1ApplicationIdentifiers.FindApplicationIdentifier("01"); aiValues[0] = new GS1ApplicationIdentifierValue(ai, "0123456789123C"); // 310 - Net weight, kilograms ai = GS1ApplicationIdentifiers.FindApplicationIdentifier("310"); aiValues[1] = new GS1ApplicationIdentifierValue(ai, "0012.55"); // 30 - Count of Items ai = GS1ApplicationIdentifiers.FindApplicationIdentifier("30"); aiValues[2] = new GS1ApplicationIdentifierValue(ai, "10"); // 90 - Company Internal Information ai = GS1ApplicationIdentifiers.FindApplicationIdentifier("90"); aiValues[3] = new GS1ApplicationIdentifierValue(ai, "ABCabc12345"); // get GS1 printable value StringBuilder printableValue = new StringBuilder(); foreach (GS1ApplicationIdentifierValue value in aiValues) printableValue.Append(value); // create the barcode writer using (BarcodeWriter writer = new BarcodeWriter()) { // specify that writer must create output image as 24-bpp image writer.Settings.PixelFormat = BarcodeImagePixelFormat.Bgr24; // specify that writer must generate Code128 barcode writer.Settings.Barcode = BarcodeType.Code128; // encode GS1 value in GS1-128 symbology writer.Settings.Value = GS1Codec.GS1_128.Encode(aiValues, writer.Settings); // set printable value if (valueVisible) { writer.Settings.ValueVisible = true; writer.Settings.PrintableValue = printableValue.ToString(); } else { writer.Settings.ValueVisible = false; } // create image with barcode using (VintasoftBitmap barcodeImage = writer.GetBarcodeAsVintasoftBitmap()) { // delete aiValues array aiValues = null; // create barcode reader using (BarcodeReader reader = new BarcodeReader()) { // specify that reader must search for GS1-128 barcodes only reader.Settings.ScanBarcodeTypes = BarcodeType.None; reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.GS1_128); // read barcode from image IBarcodeInfo[] infos = reader.ReadBarcodes(barcodeImage); // gets a GS1 Application identifiers from barcode value aiValues = ((GS1BarcodeInfo)infos[0]).ApplicationIdentifierValues; printableValue = new StringBuilder(); // print Application identifiers values for (int i = 0; i < aiValues.Length; i++) { GS1ApplicationIdentifierValue aiValue = aiValues[i]; ai = aiValue.ApplicationIdentifier; Console.WriteLine(string.Format("[{0}] {1}", i + 1, aiValue)); Console.WriteLine(string.Format("Application identifier : {0}", ai.ApplicationIdentifier)); Console.WriteLine(string.Format("Value : {0}", aiValue.Value)); Console.WriteLine(string.Format("Data title : {0}", ai.DataTitle)); Console.WriteLine(string.Format("Data content : {0}", ai.DataContent)); Console.WriteLine(string.Format("Format : {0}", ai.Format)); Console.WriteLine(string.Format("Is contains decimal point: {0}", ai.IsContainsDecimalPoint)); Console.WriteLine(string.Format("Is variable length : {0}", ai.IsVariableLength)); Console.WriteLine(); printableValue.Append(aiValue.ToString()); } // print GS1 printable value Console.WriteLine("Printable GS1 value: " + printableValue.ToString()); } } } } }
System.Object
Vintasoft.Barcode.GS1.GS1Codec
Целевые платформы: .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5