See Also
Features
Buy Now
Online Help
Demo
Licensing

Back

How to data binding custom objects to print barcode labels with Zebra ZPL-EPL printers and VB.NET or C# by using ThermalLabel SDK for .NET

Prerequisites
  • Neodynamic ThermalLabel SDK 2.0 for .NET
  • Microsoft .NET Framework 2.0 (or greater)
  • Microsoft Visual Studio 2005 / 2008
  • Microsoft Visual Studio 2005 / 2008 Express Editions (VB, C#, J#, and C++)
  • Any Zebra Thermal Printer supporting ZPL (Zebra Programming Language) or EPL (Eltron Programming Language)
ThermalLabel SDK supports .NET Data Binding scenarios allowing you to print thermal labels bound to a data source such as custom .NET objects, XML files, Databases, ADO.NET, etc.

In this guide you will learn how to perform data binding with .NET Custom Objects to print barcode labels with Zebra ZPL or EPL printers by using ThermalLabel SDK for .NET

The following sample features a class called Product with two basic properties: Id and Name. A list of Product and a ThermalLabel objects will be used to perform data binding scenario printing a set of thermal labels for each product as shown in the following figure.
How to data binding custom objects to print barcode labels with Zebra ZPL-EPL printers and VB.NET or C# by using ThermalLabel SDK for .NET
NOTE
The following output is from a ZPL printer. Other printers based on different programming languages like EPL will produce different outputs.


IMPORTANT: To test the sample code you must have installed a Zebra ZPL-based or EPL-based thermal printer.

Follow these steps:
  • Download and install latest version of Neodynamic ThermalLabel SDK for .NET
  • Open Visual Studio 2005 / 2008 and create a Windows Forms application.
  • Add a reference to Neodynamic.SDK.ThermalLabel.dll assembly.
  • Add a Class file and name it Product. After that paste the following code into it:
    Visual Basic .NET
    Public Class Product
    
        Dim _id As String
        Dim _name As String
    
        Public Sub New(ByVal id As String, ByVal name As String)
            Me.Id = id
            Me.Name = name
        End Sub
    
        Public Property Id() As String
            Get
                Return _id
            End Get
            Set(ByVal value As String)
                _id = value
            End Set
        End Property
    
        Public Property Name() As String
            Get
                Return _name
            End Get
            Set(ByVal value As String)
                _name = value
            End Set
        End Property
    
    End Class
    
    Visual C# .NET
    public class Product
    {
        string _id;
        string _name;
        
        public Product(string id, string name)
        {
            this.Id = id;
            this.Name = name;
        }
    
        public string Id
        {
            get { return _id; }
            set { _id = value; }
        }
    
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }
    }
    
  • Add a button control onto the form and paste the following code in the click event handler of the button:
    IMPORTANT NOTICE
    Although ThermalLabel SDK supports both ZPL and EPL printers, a label design you write using .NET code like C# or VB.NET will not produce the same output printing under ZPL and EPL printers. If you need to support both printer languages in your project then you will have to design two different labels targeting each printer language separately.
    For ZPL-based Printers Visual Basic .NET
    'Define a ThermalLabel object and set unit to cm and label size
    Dim tLabel As New ThermalLabel(UnitType.Cm, 6, 0)
    
    'Define a TableShapeItem object
    Dim table As New TableShapeItem(0.5, 0.5, 5, 3, 1, 2)
    'Set stroke thickness
    table.StrokeThickness = 0.05
    
    'Set first row height
    table.Rows(0).Height = 0.75
    
    'First Cell settings...
    table.Cells(0, 0).Padding.Top = 0.2
    table.Cells(0, 0).Content = CellContent.Text
    'Set Data Source field...
    table.Cells(0, 0).ContentText.DataField = "Name"
    table.Cells(0, 0).ContentText.Font.Name = "0"
    table.Cells(0, 0).ContentText.Font.CharHeight = 12
    table.Cells(0, 0).ContentAlignment = CellContentAlignment.Center
    'Second Cell settings...
    table.Cells(1, 0).Padding.Top = 0.2
    table.Cells(1, 0).Padding.Left = 0.75
    table.Cells(1, 0).Content = CellContent.Barcode
    table.Cells(1, 0).ContentBarcode.Symbology = BarcodeSymbology.Code128
    'Set Data Source field...
    table.Cells(1, 0).ContentBarcode.DataField = "Id"
    table.Cells(1, 0).ContentBarcode.BarWidth = 0.04
    table.Cells(1, 0).ContentBarcode.BarHeight = 1.25
    
    'Add items to ThermalLabel object...
    tLabel.Items.Add(table)
    
    
    'Create data source...
    Dim products As New List(Of Product)
    products.Add(New Product("OO2935", "Olive Oil"))
    products.Add(New Product("CS4948", "Curry Sauce"))
    products.Add(New Product("CH0094", "Chocolate"))
    products.Add(New Product("MZ1027", "Mozzarella"))
    
    'set data source...
    tLabel.DataSource = products
    
    'Create a PrintJob object
    Dim pj As New PrintJob()
    'Thermal Printer is connected through USB
    pj.PrinterSettings.Communication.CommunicationType = CommunicationType.USB
    'Set Thermal Printer resolution
    pj.PrinterSettings.Dpi = 203
    'Set Thermal Printer language
    pj.PrinterSettings.ProgrammingLanguage = ProgrammingLanguage.ZPL
    'Set Thermal Printer name 
    pj.PrinterSettings.PrinterName = "Zebra  TLP2844-Z"
    'Print ThermalLabel object...
    pj.Print(tLabel)
    
    Visual C# .NET
    //Define a ThermalLabel object and set unit to cm and label size
    ThermalLabel tLabel = new ThermalLabel(UnitType.Cm, 6, 0);
    
    //Define a TableShapeItem object
    TableShapeItem table = new TableShapeItem(0.5, 0.5, 5, 3, 1, 2);
    //Set stroke thickness
    table.StrokeThickness = 0.05;
    
    //Set first row height
    table.Rows[0].Height = 0.75;
    
    //First Cell settings...
    table.Cells[0, 0].Padding.Top = 0.2;
    table.Cells[0, 0].Content = CellContent.Text;
    //Set Data Source field...
    table.Cells[0, 0].ContentText.DataField = "Name";
    table.Cells[0, 0].ContentText.Font.Name = "0";
    table.Cells[0, 0].ContentText.Font.CharHeight = 12;
    table.Cells[0, 0].ContentAlignment = CellContentAlignment.Center;
    //Second Cell settings...
    table.Cells[1, 0].Padding.Top = 0.2;
    table.Cells[1, 0].Padding.Left = 0.75;
    table.Cells[1, 0].Content = CellContent.Barcode;
    table.Cells[1, 0].ContentBarcode.Symbology = BarcodeSymbology.Code128;
    //Set Data Source field...
    table.Cells[1, 0].ContentBarcode.DataField = "Id";
    table.Cells[1, 0].ContentBarcode.BarWidth = 0.04;
    table.Cells[1, 0].ContentBarcode.BarHeight = 1.25;
    
    //Add items to ThermalLabel object...
    tLabel.Items.Add(table);
    
    
    //Create data source...
    List products = new List();
    products.Add(new Product("OO2935", "Olive Oil"));
    products.Add(new Product("CS4948", "Curry Sauce"));
    products.Add(new Product("CH0094", "Chocolate"));
    products.Add(new Product("MZ1027", "Mozzarella"));
    
    //set data source...
    tLabel.DataSource = products;
    
    //Create a PrintJob object
    PrintJob pj = new PrintJob();
    //Thermal Printer is connected through USB
    pj.PrinterSettings.Communication.CommunicationType = CommunicationType.USB;
    //Set Thermal Printer resolution
    pj.PrinterSettings.Dpi = 203;
    //Set Thermal Printer language
    pj.PrinterSettings.ProgrammingLanguage = ProgrammingLanguage.ZPL;
    //Set Thermal Printer name 
    pj.PrinterSettings.PrinterName = "Zebra  TLP2844-Z";
    //Print ThermalLabel object...
    pj.Print(tLabel);
    


    For EPL-based Printers Visual Basic .NET
    'Define a ThermalLabel object and set unit to cm and label size
    Dim tLabel As New ThermalLabel(UnitType.Cm, 6, 0)
    
    'Define a TableShapeItem object
    Dim table As New TableShapeItem(0.5, 0.5, 5, 3, 1, 2)
    'Set stroke thickness
    table.StrokeThickness = 0.05
    
    'Set first row height
    table.Rows(0).Height = 0.75
    
    'First Cell settings...
    table.Cells(0, 0).Padding.Top = 0.2
    table.Cells(0, 0).Content = CellContent.Text
    'Set Data Source field...
    table.Cells(0, 0).ContentText.DataField = "Name"
    table.Cells(0, 0).ContentText.Font.Name = "1"
    table.Cells(0, 0).ContentText.Font.CharHeight = 12
    table.Cells(0, 0).ContentText.Font.CharWidth = 10
    table.Cells(0, 0).ContentAlignment = CellContentAlignment.Center
    'Second Cell settings...
    table.Cells(1, 0).Padding.Top = 0.2
    table.Cells(1, 0).Padding.Left = 0.75
    table.Cells(1, 0).Content = CellContent.Barcode
    table.Cells(1, 0).ContentBarcode.Symbology = BarcodeSymbology.Code128
    'Set Data Source field...
    table.Cells(1, 0).ContentBarcode.DataField = "Id"
    table.Cells(1, 0).ContentBarcode.BarWidth = 0.04
    table.Cells(1, 0).ContentBarcode.BarHeight = 1.25
    
    'Add items to ThermalLabel object...
    tLabel.Items.Add(table)
    
    
    'Create data source...
    Dim products As New List(Of Product)
    products.Add(New Product("OO2935", "Olive Oil"))
    products.Add(New Product("CS4948", "Curry Sauce"))
    products.Add(New Product("CH0094", "Chocolate"))
    products.Add(New Product("MZ1027", "Mozzarella"))
    
    'set data source...
    tLabel.DataSource = products
    
    'Create a PrintJob object
    Dim pj As New PrintJob()
    'Thermal Printer is connected through USB
    pj.PrinterSettings.Communication.CommunicationType = CommunicationType.USB
    'Set Thermal Printer resolution
    pj.PrinterSettings.Dpi = 203
    'Set Thermal Printer language
    pj.PrinterSettings.ProgrammingLanguage = ProgrammingLanguage.EPL
    'Set Thermal Printer name 
    pj.PrinterSettings.PrinterName = "Zebra  GK420t"
    'Print ThermalLabel object...
    pj.Print(tLabel)
    
    Visual C# .NET
    //Define a ThermalLabel object and set unit to cm and label size
    ThermalLabel tLabel = new ThermalLabel(UnitType.Cm, 6, 0);
    
    //Define a TableShapeItem object
    TableShapeItem table = new TableShapeItem(0.5, 0.5, 5, 3, 1, 2);
    //Set stroke thickness
    table.StrokeThickness = 0.05;
    
    //Set first row height
    table.Rows[0].Height = 0.75;
    
    //First Cell settings...
    table.Cells[0, 0].Padding.Top = 0.2;
    table.Cells[0, 0].Content = CellContent.Text;
    //Set Data Source field...
    table.Cells[0, 0].ContentText.DataField = "Name";
    table.Cells[0, 0].ContentText.Font.Name = "1";
    table.Cells[0, 0].ContentText.Font.CharHeight = 12;
    table.Cells[0, 0].ContentText.Font.CharWidth = 10;
    table.Cells[0, 0].ContentAlignment = CellContentAlignment.Center;
    //Second Cell settings...
    table.Cells[1, 0].Padding.Top = 0.2;
    table.Cells[1, 0].Padding.Left = 0.75;
    table.Cells[1, 0].Content = CellContent.Barcode;
    table.Cells[1, 0].ContentBarcode.Symbology = BarcodeSymbology.Code128;
    //Set Data Source field...
    table.Cells[1, 0].ContentBarcode.DataField = "Id";
    table.Cells[1, 0].ContentBarcode.BarWidth = 0.04;
    table.Cells[1, 0].ContentBarcode.BarHeight = 1.25;
    
    //Add items to ThermalLabel object...
    tLabel.Items.Add(table);
    
    
    //Create data source...
    List products = new List();
    products.Add(new Product("OO2935", "Olive Oil"));
    products.Add(new Product("CS4948", "Curry Sauce"));
    products.Add(new Product("CH0094", "Chocolate"));
    products.Add(new Product("MZ1027", "Mozzarella"));
    
    //set data source...
    tLabel.DataSource = products;
    
    //Create a PrintJob object
    PrintJob pj = new PrintJob();
    //Thermal Printer is connected through USB
    pj.PrinterSettings.Communication.CommunicationType = CommunicationType.USB;
    //Set Thermal Printer resolution
    pj.PrinterSettings.Dpi = 203;
    //Set Thermal Printer language
    pj.PrinterSettings.ProgrammingLanguage = ProgrammingLanguage.EPL;
    //Set Thermal Printer name 
    pj.PrinterSettings.PrinterName = "Zebra  GK420t";
    //Print ThermalLabel object...
    pj.Print(tLabel);
    
  • Run the sample Windows Forms application and test it.
If you need more information or assistance, please contact our .
 Copyright © 2003 - 2010 Neodynamic S.R.L. All rights reserved.