Draw PDF Barcode for WPF

PDF barcode is mainly used in commodity transaction which, to a large extent, increases efficiency and escapes human errors. The most frequently case we use barcode is that when we go shopping in the supermarket, the operator only needs to scan the barcodes, the price of the goods will automatically show. Obviously, all the information has been input in the customer data table system. Through barcode, people can easily find the details of a good in a short time. Since barcode is so wonderful, let me share a solution to draw barcode in PDF document.

Spire.PDF for WPF enables users to easily draw barcode in PDF document with C#, VB.NET for WPF. Before you start, please freely Download Spire.PDF (Spire.Office) and install it with .NET Framework 2.0 (or above) together on your system. The detail procedure can be shown below.

Step 1: Create a new project

  • Create a new project in WPF Application
  • Add a button in MainWindow and set the button Content property to be "Run".
  • Add Spire.Pdf.Wpf.dll and System.Drawing as references. After adding the namespaces, you can view the below codes.
[C#]
using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Barcode;

namespace PDFWPFbarcode
{
    /// 
    /// Interaction logic for MainWindow.xaml
    /// 
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {

        }
    }
}
[VB.NET]
Imports System.Drawing
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports Spire.Pdf.Barcode

Namespace PDFWPFbarcode
	''' 
	''' Interaction logic for MainWindow.xaml
	''' 
	Public Partial Class MainWindow
		Inherits Window
		Public Sub New()
			InitializeComponent()
		End Sub

		Private Sub button1_Click(sender As Object, e As RoutedEventArgs)
	          End Sub
	End Class
End Namespace

Step 2: Draw barcodes in PDF document

Create a PDF document, set its margin and add one page in it

[C#]
            //Create a pdf document.
            PdfDocument doc = new PdfDocument();

            //margin
            PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
            PdfMargins margin = new PdfMargins();
            margin.Top = unitCvtr.ConvertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);
            margin.Bottom = margin.Top;
            margin.Left = unitCvtr.ConvertUnits(3.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);
            margin.Right = margin.Left;

            PdfSection section = doc.Sections.Add();
            section.PageSettings.Margins = margin;
            section.PageSettings.Size = PdfPageSize.A4;

            // Create one page
            PdfPageBase page = section.Pages.Add();
            float y = 10;
            PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Arial", 12f, System.Drawing.FontStyle.Bold), true);
[VB.NET]
        'Create a pdf document.
	Dim doc As New PdfDocument()

	'margin
	Dim unitCvtr As New PdfUnitConvertor()
	Dim margin As New PdfMargins()
	margin.Top = unitCvtr.ConvertUnits(2.54F, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point)
	margin.Bottom = margin.Top
	margin.Left = unitCvtr.ConvertUnits(3.17F, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point)
	margin.Right = margin.Left

	Dim section As PdfSection = doc.Sections.Add()
	section.PageSettings.Margins = margin
	section.PageSettings.Size = PdfPageSize.A4

	' Create one page
	Dim page As PdfPageBase = section.Pages.Add()
	Dim y As Single = 40
        Dim font1 As New PdfTrueTypeFont(New Font("Arial", 12F, System.Drawing.FontStyle.Bold), True)

Draw barcodes in PDF document

[C#]
            //draw Codebar
            PdfTextWidget text = new PdfTextWidget();
            text.Font = font1;
            text.Text = "Codebar:";
            PdfLayoutResult result = text.Draw(page, 0, y);
            page = result.Page;
            y = result.Bounds.Bottom + 2;

            PdfCodabarBarcode barcode1 = new PdfCodabarBarcode("00:12-3456/7890");
            barcode1.BarcodeToTextGapHeight = 1f;
            barcode1.EnableCheckDigit = true;
            barcode1.ShowCheckDigit = true;
            barcode1.TextDisplayLocation = TextLocation.Bottom;
            barcode1.TextColor = System.Drawing.Color.Blue;
            barcode1.Draw(page, new PointF(0, y));
            y = barcode1.Bounds.Bottom + 5;
            //draw Code11Barcode
            text.Text = "Code11:";
            result = text.Draw(page, 0, y);
            page = result.Page;
            y = result.Bounds.Bottom + 2;

            PdfCode11Barcode barcode2 = new PdfCode11Barcode("123-4567890");
            barcode2.BarcodeToTextGapHeight = 1f;
            barcode2.TextDisplayLocation = TextLocation.Bottom;
            barcode2.TextColor = System.Drawing.Color.Blue;
            barcode2.Draw(page, new PointF(0, y));
            y = barcode2.Bounds.Bottom + 5;
            //draw Code128-A
            text.Text = "Code128-A:";
            result = text.Draw(page, 0, y);
            page = result.Page;
            y = result.Bounds.Bottom + 2;

            PdfCode128ABarcode barcode3 = new PdfCode128ABarcode("HELLO 00-123");
            barcode3.BarcodeToTextGapHeight = 1f;
            barcode3.TextDisplayLocation = TextLocation.Bottom;
            barcode3.TextColor = System.Drawing.Color.Blue;
            barcode3.Draw(page, new PointF(0, y));
            y = barcode3.Bounds.Bottom + 5;
            //draw Code128-B
            text.Text = "Code128-B:";
            result = text.Draw(page, 0, y);
            page = result.Page;
            y = result.Bounds.Bottom + 2;

            PdfCode128BBarcode barcode4 = new PdfCode128BBarcode("Hello 00-123");
            barcode4.BarcodeToTextGapHeight = 1f;
            barcode4.TextDisplayLocation = TextLocation.Bottom;
            barcode4.TextColor = System.Drawing.Color.Blue;
            barcode4.Draw(page, new PointF(0, y));
            y = barcode4.Bounds.Bottom + 5;
            //draw Code32
            text.Text = "Code32:";
            result = text.Draw(page, 0, y);
            page = result.Page;
            y = result.Bounds.Bottom + 2;

            PdfCode32Barcode barcode5 = new PdfCode32Barcode("16273849");
            barcode5.BarcodeToTextGapHeight = 1f;
            barcode5.TextDisplayLocation = TextLocation.Bottom;
            barcode5.TextColor = System.Drawing.Color.Blue;
            barcode5.Draw(page, new PointF(0, y));
            y = barcode5.Bounds.Bottom + 5;

            page = section.Pages.Add();
            y = 10;
            //draw Code39
            text.Text = "Code39:";
            result = text.Draw(page, 0, y);
            page = result.Page;
            y = result.Bounds.Bottom + 2;

            PdfCode39Barcode barcode6 = new PdfCode39Barcode("16-273849");
            barcode6.BarcodeToTextGapHeight = 1f;
            barcode6.TextDisplayLocation = TextLocation.Bottom;
            barcode6.TextColor = System.Drawing.Color.Blue;
            barcode6.Draw(page, new PointF(0, y));
            y = barcode6.Bounds.Bottom + 5;
            //draw Code39-E
            text.Text = "Code39-E:";
            result = text.Draw(page, 0, y);
            page = result.Page;
            y = result.Bounds.Bottom + 2;

            PdfCode39ExtendedBarcode barcode7 = new PdfCode39ExtendedBarcode("16-273849");
            barcode7.BarcodeToTextGapHeight = 1f;
            barcode7.TextDisplayLocation = TextLocation.Bottom;
            barcode7.TextColor = System.Drawing.Color.Blue;
            barcode7.Draw(page, new PointF(0, y));
            y = barcode7.Bounds.Bottom + 5;
            //draw Code93
            text.Text = "Code93:";
            result = text.Draw(page, 0, y);
            page = result.Page;
            y = result.Bounds.Bottom + 2;

            PdfCode93Barcode barcode8 = new PdfCode93Barcode("16-273849");
            barcode8.BarcodeToTextGapHeight = 1f;
            barcode8.TextDisplayLocation = TextLocation.Bottom;
            barcode8.TextColor = System.Drawing.Color.Blue;
            barcode8.QuietZone.Bottom = 5;
            barcode8.Draw(page, new PointF(0, y));
            y = barcode8.Bounds.Bottom + 5;
            //draw Code93-E
            text.Text = "Code93-E:";
            result = text.Draw(page, 0, y);
            page = result.Page;
            y = result.Bounds.Bottom + 2;

            PdfCode93ExtendedBarcode barcode9 = new PdfCode93ExtendedBarcode("16-273849");
            barcode9.BarcodeToTextGapHeight = 1f;
            barcode9.TextDisplayLocation = TextLocation.Bottom;
            barcode9.TextColor = System.Drawing.Color.Blue;
            barcode9.Draw(page, new PointF(0, y));
            y = barcode9.Bounds.Bottom + 5;
[VB.NET]
	'draw Codebar
	Dim text As New PdfTextWidget()
	text.Font = font1
	text.Text = "Codebar:"
	Dim result As PdfLayoutResult = text.Draw(page, 0, y)
	page = result.Page
	y = result.Bounds.Bottom + 2

	Dim barcode1 As New PdfCodabarBarcode("00:12-3456/7890")
	barcode1.BarcodeToTextGapHeight = 1F
	barcode1.EnableCheckDigit = True
	barcode1.ShowCheckDigit = True
	barcode1.TextDisplayLocation = TextLocation.Bottom
	barcode1.TextColor = System.Drawing.Color.Blue
	barcode1.Draw(page, New PointF(0, y))
	y = barcode1.Bounds.Bottom + 5


	'draw Code11Barcode
	text.Text = "Code11:"
	result = text.Draw(page, 0, y)
	page = result.Page
	y = result.Bounds.Bottom + 2

	Dim barcode2 As New PdfCode11Barcode("123-4567890")
	barcode2.BarcodeToTextGapHeight = 1F
	barcode2.TextDisplayLocation = TextLocation.Bottom
	barcode2.TextColor = System.Drawing.Color.Blue
	barcode2.Draw(page, New PointF(0, y))
	y = barcode2.Bounds.Bottom + 5


	'draw Code128-A
	text.Text = "Code128-A:"
	result = text.Draw(page, 0, y)
	page = result.Page
	y = result.Bounds.Bottom + 2

	Dim barcode3 As New PdfCode128ABarcode("HELLO 00-123")
	barcode3.BarcodeToTextGapHeight = 1F
	barcode3.TextDisplayLocation = TextLocation.Bottom
	barcode3.TextColor = System.Drawing.Color.Blue
	barcode3.Draw(page, New PointF(0, y))
	y = barcode3.Bounds.Bottom + 5


	'draw Code128-B
	text.Text = "Code128-B:"
	result = text.Draw(page, 0, y)
	page = result.Page
	y = result.Bounds.Bottom + 2

	Dim barcode4 As New PdfCode128BBarcode("Hello 00-123")
	barcode4.BarcodeToTextGapHeight = 1F
	barcode4.TextDisplayLocation = TextLocation.Bottom
	barcode4.TextColor = System.Drawing.Color.Blue
	barcode4.Draw(page, New PointF(0, y))
	y = barcode4.Bounds.Bottom + 5


	'draw Code32
	text.Text = "Code32:"
	result = text.Draw(page, 0, y)
	page = result.Page
	y = result.Bounds.Bottom + 2

	Dim barcode5 As New PdfCode32Barcode("16273849")
	barcode5.BarcodeToTextGapHeight = 1F
	barcode5.TextDisplayLocation = TextLocation.Bottom
	barcode5.TextColor = System.Drawing.Color.Blue
	barcode5.Draw(page, New PointF(0, y))
	y = barcode5.Bounds.Bottom + 5

	page = section.Pages.Add()
	y = 10


	'draw Code39
	text.Text = "Code39:"
	result = text.Draw(page, 0, y)
	page = result.Page
	y = result.Bounds.Bottom + 2

	Dim barcode6 As New PdfCode39Barcode("16-273849")
	barcode6.BarcodeToTextGapHeight = 1F
	barcode6.TextDisplayLocation = TextLocation.Bottom
	barcode6.TextColor = System.Drawing.Color.Blue
	barcode6.Draw(page, New PointF(0, y))
	y = barcode6.Bounds.Bottom + 5


	'draw Code39-E
	text.Text = "Code39-E:"
	result = text.Draw(page, 0, y)
	page = result.Page
	y = result.Bounds.Bottom + 2

	Dim barcode7 As New PdfCode39ExtendedBarcode("16-273849")
	barcode7.BarcodeToTextGapHeight = 1F
	barcode7.TextDisplayLocation = TextLocation.Bottom
	barcode7.TextColor = System.Drawing.Color.Blue
	barcode7.Draw(page, New PointF(0, y))
	y = barcode7.Bounds.Bottom + 5


	'draw Code93
	text.Text = "Code93:"
	result = text.Draw(page, 0, y)
	page = result.Page
	y = result.Bounds.Bottom + 2

	Dim barcode8 As New PdfCode93Barcode("16-273849")
	barcode8.BarcodeToTextGapHeight = 1F
	barcode8.TextDisplayLocation = TextLocation.Bottom
	barcode8.TextColor = System.Drawing.Color.Blue
	barcode8.QuietZone.Bottom = 5
	barcode8.Draw(page, New PointF(0, y))
	y = barcode8.Bounds.Bottom + 5


	'draw Code93-E
	text.Text = "Code93-E:"
	result = text.Draw(page, 0, y)
	page = result.Page
	y = result.Bounds.Bottom + 2

	Dim barcode9 As New PdfCode93ExtendedBarcode("16-273849")
	barcode9.BarcodeToTextGapHeight = 1F
	barcode9.TextDisplayLocation = TextLocation.Bottom
	barcode9.TextColor = System.Drawing.Color.Blue
	barcode9.Draw(page, New PointF(0, y))
	y = barcode9.Bounds.Bottom + 5

Step 3: Save and Launch

[C#]
            //Save pdf file.
            doc.SaveToFile("Barcode.pdf");
            doc.Close();

            //Launching the Pdf file.
            System.Diagnostics.Process.Start("Barcode.pdf");
[VB.NET]
	'Save pdf file.
	doc.SaveToFile("Barcode.pdf")
	doc.Close()

	'Launching the Pdf file.
	System.Diagnostics.Process.Start("Barcode.pdf")

Effective Screeshot:

Draw Barcode in PDF