Prerequisites
- Neodynamic Barcode Professional 6.0 for Windows Forms (WinControl)
- Microsoft .NET Framework (any version)
- Microsoft Visual Studio .NET (any version) or Microsoft Visual Basic Express or Visual C# Express Editions

In this guide you will learn how to print images or pictures, texts and barcodes by using Barcode Professional and .NET PrintDocument class.

The following sample code prints a fictitious coupon featuring the company logo, coupon info as well as barcode. To reproduce the sample app, please follow these steps:

NOTE
Please download the following image to C:\temp folder before running the sample code.

View Figure...

- Open Visual Studio and create a new Windows Forms app using your preferred .NET language VB or C#
- In your project add a reference to Neodynamic.WinControls.BarcodeProfessional.dll
- Open the default form in design view and drag & drop a Button control, a PrintDialog and PrintDocument components from VS toolbox
- Double-click on the Button control and paste the following code inside the button's Click event handler
Visual Basic .NET
'show print dialog...
If printDialog1.ShowDialog() = DialogResult.OK Then
'set printer settings on printdocument object
printDocument1.PrinterSettings = printDialog1.PrinterSettings
'print...
printDocument1.Print()
End If

Visual C# .NET
//show print dialog...
if (printDialog1.ShowDialog() == DialogResult.OK)
{
//set printer settings on printdocument object
printDocument1.PrinterSettings = printDialog1.PrinterSettings;
//print...
printDocument1.Print();
}

- Back to the form design view and now double-click on the PrintDocument component. In the code behind class, paste the following code inside the PrintDocument's PrintPage event handler
Visual Basic .NET
'printing barcode coupon...

'1. Print the company logo and % for coupon...
Dim logo As Image = Image.FromFile(@"C:\temp\AWCoupon.jpg")
e.Graphics.DrawImage(logo, New Point(0, 0))
logo.Dispose()

'2. Print barcode...
Dim barcode As New Neodynamic.WinControls.BarcodeProfessional.BarcodeProfessional()

'set barcode symbology... eg Code 128
barcode.Symbology = Neodynamic.WinControls.BarcodeProfessional.Symbology.Code128
'set barcode bars dimensions...
barcode.BarcodeUnit = Neodynamic.WinControls.BarcodeProfessional.BarcodeUnit.Inch
barcode.BarWidth = 0.015
barcode.BarHeight = 0.75
'set value to encode... this time a random value...
barcode.Code = Guid.NewGuid().ToString().ToUpper().Substring(0, 16)
'justify text...
barcode.CodeAlignment = Neodynamic.WinControls.BarcodeProfessional.Alignment.BelowJustify
'set font for barcode human readable text...
Dim fnt As New Font("Courier New", 10F)
barcode.Font = fnt
fnt.Dispose()
'print barcode below logo...
'IMPORTANT: barcode location unit depends on BarcodeUnit setting which in this case is INCH
barcode.DrawOnCanvas(e.Graphics, New PointF(0.1F, 1.5F))

'3. Print some texts...
Dim fnt1 As New Font("Arial", 12F, FontStyle.Bold)
Dim fnt2 As New Font("Arial", 8F, FontStyle.Regular)

e.Graphics.DrawString("RESELLER INTRUCTIONS", fnt1, Brushes.Black, New PointF(10F, 270F))
e.Graphics.DrawString("Use Item -% Off for the 15%. Scan coupon barcode or enter coupon code. Collect coupon with purchase as coupon may only be redeemed once per customer.", fnt2, Brushes.Black, New RectangleF(New PointF(10F, 290F), New SizeF(570F, 50F)))

e.Graphics.DrawString("COUPON OFFER DETAILS", fnt1, Brushes.Black, New PointF(10F, 350F))
e.Graphics.DrawString("This coupon can be redeemed once at any Adventure Works Cycles retail store." + Environment.NewLine + "This coupon is valid from May 21, 2009 to Jun 21, 2009.", fnt2, Brushes.Black, New RectangleF(New PointF(10F, 370F), New SizeF(570F, 50F)))

fnt1.Dispose()
fnt2.Dispose()

Visual C# .NET
//printing barcode coupon...

//1. Print the company logo and % for coupon...
using (Image logo = Image.FromFile(@"C:\temp\AWCoupon.jpg"))
{
e.Graphics.DrawImage(logo, new Point(0, 0));
}

//2. Print barcode...
using (Neodynamic.WinControls.BarcodeProfessional.BarcodeProfessional barcode = new Neodynamic.WinControls.BarcodeProfessional.BarcodeProfessional())
{
//set barcode symbology... eg Code 128
barcode.Symbology = Neodynamic.WinControls.BarcodeProfessional.Symbology.Code128;
//set barcode bars dimensions...
barcode.BarcodeUnit = Neodynamic.WinControls.BarcodeProfessional.BarcodeUnit.Inch;
barcode.BarWidth = 0.015;
barcode.BarHeight = 0.75;
//set value to encode... this time a random value...
barcode.Code = Guid.NewGuid().ToString().ToUpper().Substring(0, 16);
//justify text...
barcode.CodeAlignment = Neodynamic.WinControls.BarcodeProfessional.Alignment.BelowJustify;
//set font for barcode human readable text...
using (Font fnt = new Font("Courier New", 10f))
{
barcode.Font = fnt;
}
//print barcode below logo...
//IMPORTANT: barcode location unit depends on BarcodeUnit setting which in this case is INCH
barcode.DrawOnCanvas(e.Graphics, new PointF(0.1f, 1.5f));
}

//3. Print some texts...
using (Font fnt1 = new Font("Arial", 12f, FontStyle.Bold))
{
using (Font fnt2 = new Font("Arial", 8f, FontStyle.Regular))
{
e.Graphics.DrawString("RESELLER INTRUCTIONS", fnt1, Brushes.Black, new PointF(10f, 270f));
e.Graphics.DrawString("Use Item -% Off for the 15%. Scan coupon barcode or enter coupon code. Collect coupon with purchase as coupon may only be redeemed once per customer.", fnt2, Brushes.Black, new RectangleF(new PointF(10f, 290f), new SizeF(570f, 50f)));

e.Graphics.DrawString("COUPON OFFER DETAILS", fnt1, Brushes.Black, new PointF(10f, 350f));
e.Graphics.DrawString("This coupon can be redeemed once at any Adventure Works Cycles retail store." + Environment.NewLine + "This coupon is valid from May 21, 2009 to Jun 21, 2009.", fnt2, Brushes.Black, new RectangleF(new PointF(10f, 370f), new SizeF(570f, 50f)));
}
}

- That's it! Run the app, click on the button and after selecting a printer the following output should be printed out. That's it! Run the app, click on the button and after selecting a printer the following output should be printed out.

View Figure...
barcode coupon sample generated and printed by using Barcode Professional and PrintDocument



Links:
This Demo
More Demos
Download Barcode Professional for Windows Forms
More Information about Neodynamic Barcode Professional for Windows Forms


Neodynamic
.NET Components & Controls
http://www.neodynamic.com
http://www.barcode-for-net.com