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.
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) { } } }
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
//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);
'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
//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;
'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
//Save pdf file. doc.SaveToFile("Barcode.pdf"); doc.Close(); //Launching the Pdf file. System.Diagnostics.Process.Start("Barcode.pdf");
'Save pdf file. doc.SaveToFile("Barcode.pdf") doc.Close() 'Launching the Pdf file. System.Diagnostics.Process.Start("Barcode.pdf")
Effective Screeshot: