Free Trial
Web API version
Licensing
Request A Quote
HAVE QUESTIONS OR NEED HELP? SUBMIT THE SUPPORT REQUEST FORM or write email to SUPPORT@BYTESCOUT.COM
Multiple Barcode Generation | C#
Program.cs:
C#
using System; using System.Collections.Generic; using System.Windows.Forms; namespace MultipleBarcodeGeneration { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } }
Form1.cs:
C#
using System; using System.IO; using System.Windows.Forms; using Bytescout.BarCode; namespace MultipleBarcodeGeneration { public partial class Form1 : Form { public Form1() { InitializeComponent(); foreach (SymbologyType st in Enum.GetValues(typeof(SymbologyType))) { cmbBarcodeType.Items.Add(st); } cmbBarcodeType.SelectedIndex = 0; cmbImageFormat.SelectedIndex = 0; } private void btnGenerate_Click(object sender, EventArgs e) { FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog(); folderBrowserDialog.Description = "Select output folder"; if (folderBrowserDialog.ShowDialog() != DialogResult.OK) { return; } string fileNameTemplate = tbFileNameTemplate.Text + "." + Convert.ToString(cmbImageFormat.SelectedItem).ToLower(); uint counterStartAt = (uint) nudCounterStartAt.Value; uint counterStepBy = (uint) nudCounterStepBy.Value; uint counterDigits = Convert.ToUInt32(cmbCounterDigits.Text); if (!fileNameTemplate.Contains("[N]")) { MessageBox.Show("File name template does not contain the counter placeholder [N]"); return; } string valueTemplate = tbValueTemplate.Text; uint valueStartAt = (uint) nudValueStartAt.Value; uint valueStepBy = (uint) nudValueStepBy.Value; uint valueEndAt = (uint) nudValueEndAt.Value; uint valueDigits = Convert.ToUInt32(cmbValueDigits.Text); if (!valueTemplate.Contains("[N]")) { MessageBox.Show("Barcode value template does not contain the counter placeholder [N]"); return; } Cursor = Cursors.WaitCursor; progressBar.Visible = true; btnGenerate.Text = "Stop"; try { progressBar.Value = (int) valueStartAt; progressBar.Minimum = (int) valueStartAt; progressBar.Maximum = (int) valueEndAt; progressBar.Step = (int) valueStepBy; GenerateBarcodes(valueTemplate, valueStartAt, valueEndAt, valueStepBy, valueDigits, fileNameTemplate, counterStartAt, counterStepBy, counterDigits, folderBrowserDialog.SelectedPath); } catch (Exception exception) { MessageBox.Show(exception.Message); } finally { Cursor = Cursors.Default; progressBar.Visible = false; btnGenerate.Text = "Generate multiple barcodes"; } } private void GenerateBarcodes(string valueTemplate, uint valueStartAt, uint valueEndAt, uint valueStepBy, uint valueDigits, string fileNameTemplate, uint counterStartAt, uint counterStepBy, uint counterDigits, string outputFolder) { Barcode barcode = new Barcode(); barcode.RegistrationKey = "demo"; barcode.RegistrationName = "demo"; barcode.Symbology = (SymbologyType) cmbBarcodeType.SelectedItem; // Set up additional barcode properties here. //barcode.AdditionalCaption = "..."; uint c = counterStartAt; for (uint i = valueStartAt; i <= valueEndAt; i += valueStepBy) { string value = String.Format("{0:D" + valueDigits + "}", i); string counter = String.Format("{0:D" + counterDigits + "}", c); string fileName = fileNameTemplate.Replace("[N]", counter); progressBar.PerformStep(); barcode.Value = valueTemplate.Replace("[N]", value); barcode.SaveImage(Path.Combine(outputFolder, fileName)); c += counterStepBy; Application.DoEvents(); } } } }