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
Print Labels | C#
Program.cs:
C#
using System; using System.Windows.Forms; namespace PrintLabels { 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.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Printing; using System.Windows.Forms; using Bytescout.BarCode; namespace PrintLabels { /// <summary> /// This example demonstrates drawing and printing of mutiple cards (e.g. stickers) on a single page. /// Cards contain variable labels and barcodes. /// </summary> public partial class Form1 : Form { SizeF PaperSize = new SizeF(5.5f, 8.75f); // 5.5 x 8.75 inches const int PrintingResolution = 300; // 300 dots per inch public Form1() { InitializeComponent(); // Make the print preview dialog larger by default printPreviewDialog1.MinimumSize = new Size(800, 600); } private void buttonPrint_Click(object sender, EventArgs e) { // Show print setup dialog, then print preview if (printDialog1.ShowDialog() == DialogResult.OK) printPreviewDialog1.ShowDialog(); } private void printDocument1_PrintPage(object sender, PrintPageEventArgs e) { // Draw page on the printer device context Bitmap pageBitmap = DrawPage(); e.Graphics.DrawImage(pageBitmap, 0, 0); } // Draw cards on a bitmap of custom size private Bitmap DrawPage() { SizeF cardSize = new SizeF(PaperSize.Width / 4, PaperSize.Height / 4); // 4 x 4 cards on a page // Prepare constant and variable labels string strBrand = "CJ SHOES"; string strModel = "ARTHUR-1N"; string strColor = "BLK"; float shoeSizeStart = 5.5f; float shoeSizeStep = 0.5f; long barcodeStartValue = 4611030000; int barcodeValueStep = 1; // Prepare fonts Font font1 = new Font("Arial", 0.12f, GraphicsUnit.Inch); Font font2 = new Font("Arial", 0.10f, GraphicsUnit.Inch); Font font3 = new Font("Arial", 0.09f, GraphicsUnit.Inch); Font font4 = new Font("Arial", 0.15f, GraphicsUnit.Inch); // Prepare barcode generator Barcode barcode = new Barcode("demo", "demo"); barcode.Symbology = SymbologyType.I2of5; barcode.NarrowBarWidth = 2; barcode.DrawCaption = false; int cardIndex = 0; // Create bitmap for the page Bitmap pageBitmap = new Bitmap((int) (PaperSize.Width * PrintingResolution), (int) (PaperSize.Height * PrintingResolution)); pageBitmap.SetResolution(PrintingResolution, PrintingResolution); using (Graphics pageCanvas = Graphics.FromImage(pageBitmap)) { pageCanvas.InterpolationMode = InterpolationMode.HighQualityBicubic; pageCanvas.CompositingQuality = CompositingQuality.HighQuality; // Setup page units to inches pageCanvas.PageUnit = GraphicsUnit.Inch; // Fill background with white color pageCanvas.Clear(Color.White); // Draw cards for (int row = 0; row < 4; row++) { for (int column = 0; column < 4; column++) { // Create bitmap for card Bitmap cardBitmap = new Bitmap((int) (cardSize.Width * PrintingResolution), (int) cardSize.Height * PrintingResolution); cardBitmap.SetResolution(PrintingResolution, PrintingResolution); using (Graphics cardCanvas = Graphics.FromImage(cardBitmap)) { // Setup page units to inches cardCanvas.PageUnit = GraphicsUnit.Inch; // Setup drawing quality cardCanvas.SmoothingMode = SmoothingMode.HighQuality; cardCanvas.InterpolationMode = InterpolationMode.HighQualityBicubic; cardCanvas.CompositingQuality = CompositingQuality.HighQuality; StringFormat stringFormat = new StringFormat(); stringFormat.Alignment = StringAlignment.Center; // Draw static labels cardCanvas.DrawString(strBrand, font1, Brushes.Black, cardSize.Width / 2, 0.1f, stringFormat); cardCanvas.DrawString(strModel, font2, Brushes.Black, cardSize.Width / 2, 0.4f, stringFormat); cardCanvas.DrawString(strColor, font1, Brushes.Black, cardSize.Width / 2, 0.7f, stringFormat); // Generate barcode image barcode.Value = (barcodeStartValue + cardIndex * barcodeValueStep).ToString(); barcode.PreserveMinReadableSize = false; barcode.ResolutionX = barcode.ResolutionY = PrintingResolution; barcode.FitInto(cardSize.Width, 0.5f, UnitOfMeasure.Inch); Image barcodeImage = barcode.GetImage(); // Draw barcode cardCanvas.DrawImage(barcodeImage, 0, 1.0f); // Draw barcode label cardCanvas.DrawString(barcode.Value, font3, Brushes.Black, cardSize.Width / 2, 1.4f, stringFormat); // Draw shoe size label cardCanvas.DrawString((shoeSizeStart + cardIndex * shoeSizeStep).ToString(), font4, Brushes.Black, cardSize.Width / 2, 1.7f, stringFormat); } // Draw card on the page pageCanvas.DrawImage(cardBitmap, column * cardSize.Width, row * cardSize.Height); cardIndex++; } } } return pageBitmap; } } }