ByteScout BarCode Generator SDK - C# - WPF barcode Control for Web - ByteScout
Announcement
Our ByteScout SDK products are sunsetting as we focus on expanding new solutions.
Learn More Open modal
Close modal
Announcement Important Update
ByteScout SDK Sunsetting Notice
Our ByteScout SDK products are sunsetting as we focus on our new & improved solutions. Thank you for being part of our journey, and we look forward to supporting you in this next chapter!

ByteScout BarCode Generator SDK – C# – WPF barcode Control for Web

  • Home
  • /
  • Articles
  • /
  • ByteScout BarCode Generator SDK – C# – WPF barcode Control for Web

WPF barcode control for web in C# with ByteScout Barcode SDK

Write code in C# to make WPF barcode control for web with this How-To tutorial

These source code samples are listed and grouped by their programming language and functions they use. ByteScout Barcode SDK was made to help with WPF barcode control for web in C#. ByteScout Barcode SDK is the robost library (Software Development Kit) that is designed for automatic generation of high-quality barcodes for printing, electronic documents and pdf. All popular barcode types are supported from Code 39 and Code 129 to QR Code, UPC, GS1, GS-128, Datamatrix, PDF417, Maxicode and many others. Provides support for full customization of fonts, colors, output and printing sizes. Special tools are included to verify output quality and printing quality. Can add generated barcode into new or existing documents, images and PDF.

This rich sample source code in C# for ByteScout Barcode SDK includes the number of functions and options you should do calling the API to implement WPF barcode control for web. In order to implement this functionality, you should copy and paste code below into your app using code editor. Then compile and run your application. Enhanced documentation and tutorials are available along with installed ByteScout Barcode SDK if you’d like to dive deeper into the topic and the details of the API.

Our website provides free trial version of ByteScout Barcode SDK. It comes along with all these source code samples with the goal to help you with your C# application implementation.

On-demand (REST Web API) version:
 Web API (on-demand version)

On-premise offline SDK for Windows:
 60 Day Free Trial (on-premise)

App.xaml.cs
      
using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Linq; using System.Windows; using System.Windows.Navigation; namespace Bytescout.BarCode.WebDemo { /// <summary> /// Interaction logic for App.xaml /// </summary> public partial class App : Application { } }

ON-PREMISE OFFLINE SDK

60 Day Free Trial or Visit ByteScout Barcode SDK Home Page

Explore ByteScout Barcode SDK Documentation

Explore Samples

Sign Up for ByteScout Barcode SDK Online Training

ON-DEMAND REST WEB API

Get Your API Key

Explore Web API Docs

Explore Web API Samples

MainPage.xaml.cs
      
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using Bytescout.BarCode.WPF; using Bytescout.BarCode; namespace Bytescout.BarCode.WebDemo { /// <summary> /// Interaction logic for MainPage.xaml /// </summary> public partial class MainPage : Page { #region Constants private const int BarHeight = 50; private const int PdfBarHeight = 6; #endregion #region Constructor /// <summary> /// Initializes a new instance of the <see cref="MainWindow"/> class. /// </summary> public MainPage() { InitializeComponent(); } #endregion #region Controls event handlers /// <summary> /// Handles the SelectionChanged event of the cmbSymbologyType control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.Windows.Controls.SelectionChangedEventArgs"/> instance containing the event data.</param> private void cmbSymbologyType_SelectionChanged(object sender, SelectionChangedEventArgs e) { UpdateBarcode(); } /// <summary> /// Handles the Click event of the btnGenerate control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.Windows.RoutedEventArgs"/> instance containing the event data.</param> private void btnGenerate_Click(object sender, RoutedEventArgs e) { UpdateBarcode(); } /// <summary> /// Handles the Click event of the btnSaveToFile control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.Windows.RoutedEventArgs"/> instance containing the event data.</param> private void btnSaveToFile_Click(object sender, RoutedEventArgs e) { SaveToFile(); } /// <summary> /// Handles the Checked event of the chkDrawCaptionFor2D control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.Windows.RoutedEventArgs"/> instance containing the event data.</param> private void chkDrawCaptionFor2D_Checked(object sender, RoutedEventArgs e) { ctrlBarcodeControl.DrawCaptionFor2DBarcodes = chkDrawCaptionFor2D.IsChecked.Value; } /// <summary> /// Handles the Checked event of the chkAutoFitToContainer control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.Windows.RoutedEventArgs"/> instance containing the event data.</param> private void chkAutoFitToContainer_Checked(object sender, RoutedEventArgs e) { ctrlBarcodeControl.AutoFitToControlSize = chkAutoFitToContainer.IsChecked.Value; } /// <summary> /// Handles the Checked event of the chkCutUnusedSpace control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.Windows.RoutedEventArgs"/> instance containing the event data.</param> private void chkCutUnusedSpace_Checked(object sender, RoutedEventArgs e) { } /// <summary> /// Handles the TextChanged event of the txtValueToEncode control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.Windows.Controls.TextChangedEventArgs"/> instance containing the event data.</param> private void txtValueToEncode_TextChanged(object sender, TextChangedEventArgs e) { UpdateBarcode(); } /// <summary> /// Handles the TextChanged event of the txtSupplementalValue control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.Windows.Controls.TextChangedEventArgs"/> instance containing the event data.</param> private void txtSupplementalValue_TextChanged(object sender, TextChangedEventArgs e) { UpdateBarcode(); } #endregion #region Private implementation public object[] GetObjectsFromEnum() { object[] objArray = new object[Enum.GetValues(typeof(SymbologyType)).Length]; for (int i = 0; i < objArray.Length; i++) { objArray[i] = ((SymbologyType)Enum.GetValues(typeof(SymbologyType)).GetValue(i)).ToString(); } return objArray; } private void UpdateBarcode() { SymbologyType symbology = (SymbologyType)Enum.GetValues(typeof(SymbologyType)).GetValue(this.cboSymbologyType.SelectedIndex); txtSymbologyDescription.Text = ctrlBarcodeControl.GetValueRestrictions(symbology); try { if (symbology == SymbologyType.EAN13 || symbology == SymbologyType.ISBN || symbology == SymbologyType.UPCA) { txtSupplementalValue.IsEnabled = true; lblSupplementalValue.IsEnabled = true; txtSymbologyDescription.Text += " " + ctrlBarcodeControl.GetSupplementaryValueRestrictions(); } else { txtSupplementalValue.IsEnabled = false; lblSupplementalValue.IsEnabled = false; } lblErrorMessage.Content = ""; ctrlBarcodeControl.RegistrationKey = "XXXXXXXXXXXXXXXXXXx"; ctrlBarcodeControl.RegistrationName = "YYYYYYYYYYYYYYYYYYYY"; ctrlBarcodeControl.Symbology = symbology; ctrlBarcodeControl.SupplementValue = txtSupplementalValue.Text; ctrlBarcodeControl.Value = txtValueToEncode.Text; ctrlBarcodeControl.DrawCaptionFor2DBarcodes = chkDrawCaptionFor2D.IsChecked.Value; ctrlBarcodeControl.AutoFitToControlSize = chkAutoFitToContainer.IsChecked.Value; ctrlBarcodeControl.Caption = ""; if (symbology == SymbologyType.PDF417 || symbology == SymbologyType.PDF417Truncated || symbology == SymbologyType.MacroPDF417 || symbology == SymbologyType.DataMatrix || symbology == SymbologyType.GS1_DataMatrix) { ctrlBarcodeControl.BarHeight = PdfBarHeight; } else if (symbology == SymbologyType.MicroPDF417) { ctrlBarcodeControl.BarHeight = PdfBarHeight / 2; } else { ctrlBarcodeControl.BarHeight = BarHeight; } } catch (Exception) { lblErrorMessage.Content = "Value is invalid for current symbology. Please review value restrictions above."; } } private void SaveToFile() { Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog(); dlg.Filter = "PNG Image|*.png|TIFF Image|*.tif;*.tiff|JPEG image|*.jpg;*.jpeg|Bitmap Image|*.bmp|GIF Image|*.gif"; dlg.ValidateNames = true; dlg.FilterIndex = 1; dlg.OverwritePrompt = true; dlg.CheckPathExists = true; dlg.AddExtension = true; bool? result = dlg.ShowDialog(Application.Current.MainWindow); if (result.HasValue && result.Value) { try { if (System.IO.Path.GetExtension(dlg.FileName).ToLowerInvariant() == ".emf") throw new BarcodeException("Saving as EMF is disabled.\nYou should buy Barcode SDK for this."); if (chkCutUnusedSpace.IsChecked.Value) { bool cut = ctrlBarcodeControl.CutUnusedSpace; ctrlBarcodeControl.CutUnusedSpace = true; ctrlBarcodeControl.SaveImage(dlg.FileName); ctrlBarcodeControl.CutUnusedSpace = cut; } else { ctrlBarcodeControl.SaveImage(dlg.FileName); } } catch (System.Exception e) { MessageBox.Show(e.Message); } } } #endregion #region Main window event handlers private void Page_Loaded(object sender, RoutedEventArgs e) { foreach (object o in GetObjectsFromEnum()) { this.cboSymbologyType.Items.Add(o); } this.cboSymbologyType.SelectedIndex = 0; } #endregion } }

ON-PREMISE OFFLINE SDK

60 Day Free Trial or Visit ByteScout Barcode SDK Home Page

Explore ByteScout Barcode SDK Documentation

Explore Samples

Sign Up for ByteScout Barcode SDK Online Training

ON-DEMAND REST WEB API

Get Your API Key

Explore Web API Docs

Explore Web API Samples

VIDEO

ON-PREMISE OFFLINE SDK

60 Day Free Trial or Visit ByteScout Barcode SDK Home Page

Explore ByteScout Barcode SDK Documentation

Explore Samples

Sign Up for ByteScout Barcode SDK Online Training

ON-DEMAND REST WEB API

Get Your API Key

Explore Web API Docs

Explore Web API Samples

Tutorials:

prev
next