SupportedBarcodes.cs
C# VB
//// This code is part of Document Solutions for PDF .NET demos.// Copyright (c) MESCIUS inc. All rights reserved.//using System;using System.IO;using System.Drawing;using GrapeCity.Documents.Drawing;using GrapeCity.Documents.Pdf;using GrapeCity.Documents.Text;using GrapeCity.Documents.Barcode;
namespace DsPdfWeb.Demos.Barcodes{ // Renders samples of all barcode symbologies supported by the DsBarcode library. public class SupportedBarcodes { public int CreatePDF(Stream stream) { // Simple layout parameters: const float margin = 72 / 2; const float pad = 4; const float gap = 10; // var doc = new GcPdfDocument(); Page page; GcGraphics g; PointF ip; // This will add a new page and set the insertion point initial position: void newPage() { page = doc.NewPage(); g = page.Graphics; ip = new PointF(margin, margin); } newPage(); // Text formats for showing barcode names and values: var tfCaption = new TextFormat() { Font = StandardFonts.Times, FontSize = 12, }; var tfBarcode = new TextFormat() { Font = StandardFonts.Helvetica, FontSize = 9, }; // The barcode instance to be used to draw all symbologies, // here we set up its properties that won't change: var barcode = new GcBarcode() { TextFormat = tfBarcode, ScaleFactor = 1.5f, }; barcode.Options.CaptionPosition = BarCodeCaptionPosition.Below; barcode.Options.SizeOptions.NarrowWideRatio = 0; // Draw a barcode with the specified symbology (code type) and optional CC-A: void drawBarcode(CodeType symbology, string value, string cca) { // Set up the barcode symbology, value and other properties: var caption = $"{symbology}:\r\n{value}"; if (string.IsNullOrEmpty(cca)) barcode.Options.GS1Composite.Type = GS1CompositeType.None; else { // Composite Component A (CC-A) specified: caption += $"\r\nDependent CCA: {cca}"; barcode.Options.GS1Composite.Type = GS1CompositeType.CCA; barcode.Options.GS1Composite.Value = cca; } // Not all barcodes support checksums: barcode.Options.CheckSumEnabled = symbology != CodeType.Code25intlv && symbology != CodeType.Code_2_of_5 && symbology != CodeType.Matrix_2_of_5; var csize = g.MeasureString(caption, tfCaption); barcode.CodeType = symbology; barcode.Text = value; var size = g.MeasureBarcode(barcode); size.Height = Math.Max(size.Height, csize.Height); var border = new RectangleF(ip, new SizeF(page.Size.Width - margin * 2, size.Height + pad * 2)); // Add new pages as needed: if (ip.Y + border.Height > page.Size.Height - margin) { newPage(); border = new RectangleF(ip, border.Size); } // Draw the barcode: g.DrawRectangle(border, Color.Gray); g.DrawString(caption, tfCaption, new PointF(border.Left + pad, border.Top + pad)); g.DrawBarcode(barcode, new RectangleF(border.Right - size.Width - pad, border.Top + pad, size.Width, size.Height)); ip.Y = border.Bottom + gap; } // Draw all supported symbologies: drawBarcode(CodeType.Ansi39, "*DSBARCODE*", null); drawBarcode(CodeType.Ansi39x, "*DsPdf*", null); drawBarcode(CodeType.Codabar, "A12041961D", null); drawBarcode(CodeType.Code25intlv, "1234567890", null); //#2 Interleaved 2 of 5 (ITF) drawBarcode(CodeType.Code39, "*DSBARCODE*", null); drawBarcode(CodeType.Code39x, "*DsPdf*", null); drawBarcode(CodeType.Code49, "DsBarcode+DsPdf", null); drawBarcode(CodeType.Code93x, "DsBarcode+DsPdf", null); drawBarcode(CodeType.Code_93, "DSBARCODE", null); drawBarcode(CodeType.Code_128_A, "DSPDF-2023", null); drawBarcode(CodeType.Code_128_B, "DsPdf-2023", null); drawBarcode(CodeType.Code_128_C, "1234567890", null); drawBarcode(CodeType.Code_128auto, "DsPdf-2023", null); drawBarcode(CodeType.Code_2_of_5, "1234567890", null); drawBarcode(CodeType.DataMatrix, "DsBarcode+DsPdf", null); drawBarcode(CodeType.QRCode, "DsBarcode+DsPdf", null); drawBarcode(CodeType.EAN_8, "1234567", null); drawBarcode(CodeType.EAN_13, "469" + "87654" + "3210", null); drawBarcode(CodeType.EAN128FNC1, "DsBarcode\nDsPdf", null); drawBarcode(CodeType.IntelligentMail, "00300999999000000001", null); drawBarcode(CodeType.JapanesePostal, "TOKYO-10CC-09-1978", null); drawBarcode(CodeType.PostNet, "152063949", null); drawBarcode(CodeType.RM4SCC, "SE17PB9Z", null); drawBarcode(CodeType.Matrix_2_of_5, "1234567890", null); drawBarcode(CodeType.MSI, "1234567890", null); drawBarcode(CodeType.MicroPDF417, "DsPdf", null); drawBarcode(CodeType.Pdf417, "DsPdf", null); drawBarcode(CodeType.RSS14, "1234567890", null); drawBarcode(CodeType.RSS14Stacked, "1234567890", null); drawBarcode(CodeType.RSS14Stacked, "1234567890", "12345"); drawBarcode(CodeType.RSS14StackedOmnidirectional, "1234567890", null); drawBarcode(CodeType.RSS14Truncated, "1234567890", null); drawBarcode(CodeType.RSSExpanded, "12345678901234", null); drawBarcode(CodeType.RSSExpandedStacked, "12345678901234", null); drawBarcode(CodeType.RSSLimited, "1234567890", null); drawBarcode(CodeType.RSSLimited, "1234567890", "12345"); drawBarcode(CodeType.UCCEAN128, "DsBarcode+DsPdf", null); drawBarcode(CodeType.UPC_A, "123456789012", null); drawBarcode(CodeType.UPC_E0, "123456789012", null); drawBarcode(CodeType.UPC_E1, "123456789012", null); // Save the PDF: doc.Save(stream); return doc.Pages.Count; } }}