Link Search Menu Expand Document

Store Large Data with Macro PDF417 Barcode - C#

BarCode SDK sample in C# demonstrating ‘Store Large Data with Macro PDF417 Barcode’

InputData.txt
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer bibendum auctor sem, sollicitudin facilisis purus interdum eu. Mauris nec quam eu lectus pretium commodo. Vestibulum porttitor dignissim leo et dictum. Pellentesque a felis at purus gravida pulvinar at at urna. Praesent ornare pretium nisi ut vestibulum. Nullam tincidunt accumsan enim vel facilisis. Morbi sed nisi sit amet purus consequat laoreet. Nunc sed nisl sed nisl convallis vestibulum. Vivamus consectetur in tortor eu rhoncus. Aenean ut lacinia erat. Duis tristique eget risus a imperdiet. Nunc mattis placerat leo. Nam sit amet hendrerit lectus. Proin varius posuere velit, eu faucibus turpis accumsan sed. Suspendisse sagittis posuere orci, eget cursus ligula sodales eget.

Vivamus vel lorem at odio lacinia dignissim. Phasellus aliquet pulvinar sem molestie iaculis. Nam maximus nunc at venenatis malesuada. Suspendisse eget mi odio. Aliquam non erat euismod, laoreet nulla at, vehicula quam. Nullam non bibendum lectus. Cras vulputate sem leo. Pellentesque enim libero, faucibus a tempus vitae, pulvinar eget nulla. Nunc eros est, placerat non luctus et, gravida ac nisi.

Etiam ullamcorper sapien elit, in lacinia erat pretium eu. Duis enim dolor, sollicitudin tristique velit eu, ullamcorper dictum odio. Curabitur vel lobortis tellus, eget lacinia tellus. Sed et elit a dolor consequat scelerisque in ac ante. Integer lorem velit, aliquet a turpis pulvinar, dapibus lobortis dolor. Morbi ut molestie nulla. Nunc massa sem, lobortis dignissim diam et, mollis laoreet magna. Nunc dictum lacinia gravida.

Fusce massa risus, semper sodales posuere eu, interdum non augue. Praesent pharetra ante eget turpis luctus accumsan. Ut rhoncus nisl justo, ac luctus purus hendrerit nec. Nam aliquet lobortis nunc sed iaculis. Proin eget quam ligula. In dictum lacus id sem egestas consequat. Mauris vel mi lorem. Proin sodales pellentesque neque, vitae placerat urna condimentum quis. Integer quis sodales nibh, non euismod odio. Nullam placerat ex nisl, nec bibendum lectus consequat eu. Vivamus eu mauris placerat, commodo tortor non, efficitur justo.

Nullam ac aliquet orci. Phasellus metus elit, dignissim vitae odio id, vehicula eleifend velit. Suspendisse dui mauris, dignissim ac venenatis non, viverra ac dui. Morbi volutpat dui diam, at sodales ante dictum eu. Pellentesque ut turpis et lacus placerat ullamcorper. In hac habitasse platea dictumst. Nunc ligula eros, efficitur sit amet blandit sed, efficitur eu velit. Etiam ut dui risus. Praesent cursus, nunc ut tempus dictum, orci neque pellentesque nibh, vel ultricies urna sapien in lorem.

Quisque hendrerit, diam non condimentum volutpat, eros odio hendrerit tellus, ut pretium odio augue vel leo. Donec sit amet convallis eros. Duis viverra tellus ac leo volutpat, a porttitor dui hendrerit. Nam mattis efficitur turpis non dictum. Fusce et ipsum vitae mi ultricies sollicitudin non nec orci. Mauris tempor dui a mi lacinia, vestibulum sagittis erat lacinia. Vivamus eu lobortis est, eget semper augue. Quisque elementum efficitur enim. Aenean cursus laoreet ipsum at accumsan. Morbi a ligula ante.

Etiam ut tempus nisl. Ut volutpat fermentum consectetur. Quisque libero lacus, tincidunt eget massa sit amet, pharetra porta dolor. Ut dapibus nibh ac erat semper, a efficitur leo varius. Duis nec consequat sapien. Donec sed vulputate lorem. Proin sed velit arcu. Etiam sit amet cursus augue. Sed tristique nisl vel sagittis mollis. Vivamus accumsan eget ante ut placerat. Curabitur at ullamcorper risus, in finibus ipsum. Phasellus posuere facilisis ligula vitae interdum. Pellentesque sagittis dignissim urna, eget consequat sem venenatis et. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nunc libero purus, tincidunt et volutpat quis, tempor ut nisl.

Nunc mollis convallis ex, pellentesque rhoncus tortor molestie at. Donec lacinia porttitor neque, et laoreet nunc consectetur id. Nam ullamcorper lectus sodales nibh aliquet suscipit gravida id nisi. Duis non aliquet odio. Sed fermentum nisi sed est interdum, vel sollicitudin augue semper. Morbi sit amet nunc mauris. Fusce eleifend posuere ligula vel aliquet. In pulvinar eros eget lobortis imperdiet.

Nunc a dolor volutpat, congue arcu vitae, pharetra dui. Maecenas tempor feugiat imperdiet. Nulla ut sem quis odio cursus rhoncus. Sed sed consectetur nunc, at tincidunt velit. Morbi id enim pulvinar, sollicitudin sapien sed, lobortis ante. Pellentesque quis venenatis turpis. Praesent sem nibh, placerat a augue non, congue placerat neque. Aliquam sed venenatis odio. Aenean consequat non odio a fringilla. Donec cursus nisi ipsum. Cras malesuada eget nulla vitae tincidunt. Proin mollis tortor sapien, venenatis euismod odio dictum nec. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Aenean eget cursus nulla.

Etiam semper posuere ante, in consectetur nisi ultricies sed. Fusce diam tortor, finibus ultricies dolor a, varius bibendum quam. Vivamus elementum leo ut nunc vulputate, vehicula imperdiet orci pulvinar. Fusce suscipit, lacus sed lobortis ornare, ex lacus interdum enim, id fringilla est quam porttitor nisl. Nunc dictum elit condimentum massa consectetur tincidunt. Nam tincidunt ipsum sem, id elementum turpis mollis id. Sed tempor nisl eget est convallis imperdiet.

Praesent vitae magna orci. Sed consectetur non sapien ut euismod. Ut at lacinia arcu. Vivamus vitae orci lectus. Etiam ultrices id quam a faucibus. Aenean porttitor varius libero ac suscipit. Donec iaculis purus nulla, congue semper nisi varius id. Duis bibendum vehicula lorem, in condimentum nisl ultrices at. Aenean maximus, orci dapibus convallis facilisis, nulla ipsum dapibus libero, sed viverra turpis dolor nec ex. Praesent mattis erat diam, vel porta dui pulvinar a. In mollis, odio sit amet ultrices commodo, enim metus pharetra tortor, a mollis lectus turpis tempor neque. Donec tincidunt felis ac nibh dapibus gravida.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut malesuada pretium nulla, vel blandit sem cursus vel. Quisque id eros nec erat ultricies fringilla quis a eros. Vestibulum nisl ipsum, condimentum a mi vitae, pharetra tincidunt dolor. Aliquam in bibendum odio, ut vehicula lorem. Nunc rhoncus, metus sed porttitor mattis, erat augue dignissim lorem, quis porta enim erat vel nulla. Cras vitae semper nisl. Nunc mauris magna, elementum in nibh at, commodo condimentum dolor. In dui nibh, venenatis sit amet elit at, volutpat scelerisque felis. In viverra erat vitae ligula viverra pellentesque id ac lectus. Sed sed risus eleifend, posuere orci in, elementum libero. Integer ac placerat ante. Pellentesque ut sem at felis ornare interdum non eu sapien. Donec laoreet id sem eget commodo. Duis sapien dolor, lacinia sed ex sed, tristique consequat dui.


Program.cs
using Bytescout.BarCode;
using System;
using System.Collections.Generic;
using System.Drawing;

namespace Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            // Load text file 
            string textInput = System.IO.File.ReadAllText("InputData.txt");

            // Split text into chunks
            var lstChunks = textInput.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

            // Create new barcode
            using (Barcode barcode = new Barcode("demo", "demo"))
            {
                // Keep generated barcode images in the list
                List<Image> images = new List<Image>();

                // Select Macro PDF417 barcode type
                barcode.Symbology = SymbologyType.MacroPDF417;

                Macro417SegmentHelper macro417SegmentHelper = new Macro417SegmentHelper();
                macro417SegmentHelper.AddValue(lstChunks);

                // Set FileID. 
                // FileID is a number from 0 to 899. It must be same for all barcodes in the set.
                barcode.Options.PDF417FileID = 123;

                int ctr = 0;
                var resImgName = "";
                foreach (var itmSegment in macro417SegmentHelper.GetAllSegments())
                {
                    // create the first segment barcode so set SegmentIndex = 1
                    barcode.Options.PDF417SegmentIndex = itmSegment.SegmentIndex;

                    // Set value            
                    barcode.Value = itmSegment.SegmentValue;

                    // set that this is not the last segment yet
                    barcode.Options.PDF417LastSegment = itmSegment.IsLastSegment;

                    // Save barcode to image
                    resImgName = $"img{++ctr}.png";
                    barcode.SaveImage(resImgName, imageFormat: System.Drawing.Imaging.ImageFormat.Png);
                    
					Console.WriteLine("'{0}' generated!", resImgName);
                }
            }

            Console.ReadLine();
        }
    }


    /// <summary>
    /// Macro 417 Segment Helper
    /// </summary>
    public class Macro417SegmentHelper
    {
        // Declarations
        private List<string> lstValues { get; set; } = new List<string>();

        /// <summary>
        /// Add segment value
        /// </summary>
        public void AddValue(params string[] strValue)
        {
            foreach (var item in strValue)
            {
                lstValues.Add(item);
            }
        }

        /// <summary>
        /// Get all segments
        /// </summary>
        public List<Macro417Segment> GetAllSegments()
        {
            var lstRet = new List<Macro417Segment>();

            for (int i = 0; i < lstValues.Count; i++)
            {
                // Create segment
                var oSegment = new Macro417Segment
                {
                    SegmentValue = lstValues[i],
                    SegmentIndex = i + 1,
                    IsLastSegment = ((i + 1) == lstValues.Count)
                };

                lstRet.Add(oSegment);
            }

            return lstRet;
        }

    }

    public class Macro417Segment
    {
        public string SegmentValue { get; set; }
        public int SegmentIndex { get; set; }
        public bool IsLastSegment { get; set; }
    }

}

Download Source Code (.zip)

Return to the previous page Explore BarCode SDK