// Init variables used to render labels: void Init(GcPdfDocument doc) { _labelWidth = (doc.PageSize.Width - hmargin * 2) / 2; _labelHeight = _labelWidth; _pBold = new Pen(Color.Black, 2); _pNorm = new Pen(Color.Black, 0.5f); _logo = Image.FromFile(Path.Combine("Resources", "ImagesBis", "AcmeLogo-vertical-250px.png")); _fontReg = Font.FromFile(Path.Combine("Resources", "Fonts", "segoeui.ttf")); _fontBold = Font.FromFile(Path.Combine("Resources", "Fonts", "segoeuib.ttf")); _tfSmall = new TextFormat() { Font = _fontReg, FontSize = 8 }; _tfSmallB = new TextFormat() { Font = _fontBold, FontSize = 8 }; _tfLarge = new TextFormat() { Font = _fontBold, FontSize = 14 }; _ia = new ImageAlign(ImageAlignHorz.Right, ImageAlignVert.Center, true, true, true, false, false); _tsHeader = new List <TabStop>() { new TabStop(24, TabStopAlignment.Leading), new TabStop(108, TabStopAlignment.Leading) }; _tsFrom = new List <TabStop>() { new TabStop(12, TabStopAlignment.Leading), new TabStop(72, TabStopAlignment.Leading) }; _tsCodes = new List <TabStop>() { new TabStop(_labelWidth / 8, TabStopAlignment.Center) }; bcTop = new GcBarcode() { TextFormat = _tfSmall, CodeType = CodeType.Code_128_B, HorizontalAlignment = ImageAlignHorz.Center, VerticalAlignment = ImageAlignVert.Center, }; bcTop.Options.CaptionPosition = BarCodeCaptionPosition.Below; bcBottom = new GcBarcode() { TextFormat = _tfSmall, CodeType = CodeType.Code_128auto, HorizontalAlignment = ImageAlignHorz.Center, VerticalAlignment = ImageAlignVert.Center, }; bcBottom.Options.CaptionPosition = BarCodeCaptionPosition.Below; }
public void CreatePDF(Stream stream) { GcPdfDocument doc = new GcPdfDocument(); Page page = null; GcGraphics g = null; const float margin = 72 / 2; const float pad = 4; const float gap = 10; var ip = new PointF(margin, margin); Action newPage = () => { page = doc.NewPage(); g = page.Graphics; ip = new PointF(margin, margin); }; newPage(); var tfCaption = new TextFormat() { Font = StandardFonts.Times, FontSize = 12, }; var tfBarcode = new TextFormat() { Font = StandardFonts.Helvetica, FontSize = 9, }; GcBarcode barcode = new GcBarcode() { TextFormat = tfBarcode, ScaleFactor = 1.5f, }; barcode.Options.CaptionPosition = BarCodeCaptionPosition.Below; barcode.Options.SizeOptions.NarrowWideRatio = 0; Action <CodeType, string, string> drawBarcode = (ct_, txt_, txt2_) => { var caption = $"{ct_}:\r\n{txt_}"; if (string.IsNullOrEmpty(txt2_)) { barcode.Options.GS1Composite.Type = GS1CompositeType.None; } else { caption += $"\r\nDependent CCA: {txt2_}"; barcode.Options.GS1Composite.Type = GS1CompositeType.CCA; barcode.Options.GS1Composite.Value = txt2_; } barcode.Options.CheckSumEnabled = ct_ != CodeType.Code25intlv && ct_ != CodeType.Code_2_of_5 && ct_ != CodeType.Matrix_2_of_5; var csize = g.MeasureString(caption, tfCaption); barcode.CodeType = ct_; barcode.Text = txt_; 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)); if (ip.Y + border.Height > page.Size.Height - margin) { newPage(); border = new RectangleF(ip, border.Size); } 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; }; // drawBarcode(CodeType.Ansi39, "*GCBARCODE*", null); drawBarcode(CodeType.Ansi39x, "*GcPdf*", null); drawBarcode(CodeType.Codabar, "A12041961D", null); drawBarcode(CodeType.Code25intlv, "1234567890", null); // Interleaved 2 of 5 (ITF) drawBarcode(CodeType.Code39, "*GCBARCODE*", null); drawBarcode(CodeType.Code39x, "*GcPdf*", null); drawBarcode(CodeType.Code49, "GcBarcode+GcPdf", null); drawBarcode(CodeType.Code93x, "GcBarcode+GcPdf", null); drawBarcode(CodeType.Code_93, "GCBARCODE", null); drawBarcode(CodeType.Code_128_A, "GCPDF-2017", null); drawBarcode(CodeType.Code_128_B, "GcPdf-2017", null); drawBarcode(CodeType.Code_128_C, "1234567890", null); drawBarcode(CodeType.Code_128auto, "GcPdf-2017", null); drawBarcode(CodeType.Code_2_of_5, "1234567890", null); drawBarcode(CodeType.DataMatrix, "GcBarcode+GcPdf", null); drawBarcode(CodeType.QRCode, "GcBarcode+GcPdf", null); drawBarcode(CodeType.EAN_8, "1234567", null); drawBarcode(CodeType.EAN_13, "469" + "87654" + "3210", null); drawBarcode(CodeType.EAN128FNC1, "GcBarcode\nGcPdf", 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, "GcPdf", null); drawBarcode(CodeType.Pdf417, "GcPdf", 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, "GcBarcode+GcPdf", null); drawBarcode(CodeType.UPC_A, "123456789012", null); drawBarcode(CodeType.UPC_E0, "123456789012", null); drawBarcode(CodeType.UPC_E1, "123456789012", null); // doc.Save(stream); }