SupportedBarcodes.cs
- //
- // This code is part of Document Solutions for PDF demos.
- // Copyright (c) MESCIUS inc. All rights reserved.
- //
- using System;
- using System.IO;
- using System.Drawing;
- using System.Collections.Generic;
- 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;
- }
- }
- }
-