ByteScout Barcode Reader SDK - C# - Split Document By Found Barcode - ByteScout
Announcement
Our ByteScout SDK products are sunsetting as we focus on expanding new solutions.
Learn More Open modal
Close modal
Announcement Important Update
ByteScout SDK Sunsetting Notice
Our ByteScout SDK products are sunsetting as we focus on our new & improved solutions. Thank you for being part of our journey, and we look forward to supporting you in this next chapter!

ByteScout Barcode Reader SDK – C# – Split Document By Found Barcode

  • Home
  • /
  • Articles
  • /
  • ByteScout Barcode Reader SDK – C# – Split Document By Found Barcode

ByteScout Barcode Reader SDK – C# – Split Document By Found Barcode

Program.cs

using System;
using System.IO;
using System.Text;
using Bytescout.BarCodeReader;

namespace SplitDocumentByFoundBarcode
{
    class Program
    {
        const string InputFIle = "Barcodes.pdf";

        static void Main()
        {
            Console.WriteLine("Reading barcode(s) from PDF document {0}", Path.GetFullPath(InputFIle));

            // Create Bytescout.BarCodeReader.Reader instance
            Reader reader = new Reader();
            reader.RegistrationName = "demo";
            reader.RegistrationKey = "demo";

            // Set barcode type to find
            reader.BarcodeTypesToFind.Code39 = true;

            // Find barcode in PDF document
            reader.ReadFrom(InputFIle);


            // Method 1: Split PDF document in two parts by found barcode
            // NOTE: In Full version of the SDK this method is unlocked in "PRO" license type only.

            reader.SplitDocument(@"barcodes.pdf", @"part1.pdf", @"part2.pdf", reader.FoundBarcodes[0].Page + 1);


            // Method 2: Extract page containing the barcode from PDF document
            // NOTE: In Full version of the SDK this method is unlocked in "PRO" license type only.

            reader.ExtractPageFromDocument(@"barcodes.pdf", @"extracted_page.pdf", reader.FoundBarcodes[0].Page + 1);


            // Method 3: Split PDF document into parts in one pass.
            // NOTE: In Full version of the SDK this method is unlocked in "PRO" license type only.

            StringBuilder pageRanges = new StringBuilder();

            // Create string containing page ranges to extract in the form "1-4,6-8,10-11,12-". Page numbers are 1-based!
            for (int i = 0; i < reader.FoundBarcodes.Length; i++)
            {
                FoundBarcode barcode = reader.FoundBarcodes&#91;i&#93;;

                // Add pages before the first barcode found
                if (i == 0 && barcode.Page > 0)
                {
                    pageRanges.Append("1");
                    if (barcode.Page > 1)
                    {
                        pageRanges.Append("-");
                        pageRanges.Append(barcode.Page);
                    }
                    pageRanges.Append(",");
                }

                // Add page with barcode
                pageRanges.Append(barcode.Page + 1); // +1 because we skip the page with barcode and another +1 because need 1-based page numbers
                
                // Add range untill the next barcode
                if (i < reader.FoundBarcodes.Length - 1)
                {
                    if (reader.FoundBarcodes&#91;i + 1&#93;.Page - barcode.Page > 1)
                    {
                        pageRanges.Append("-");
                        pageRanges.Append(reader.FoundBarcodes[i + 1].Page);
                    }

                    pageRanges.Append(",");
                }
                else // for the last found barcode add ending "-" meaning "to the last page"
                {
                    pageRanges.Append("-");
                }
            }

            // Split document 
            string[] splittedParts = reader.SplitDocument(@"barcodes.pdf", pageRanges.ToString());
            // The method returns array of file names. Rename files as desired.
        }
    }
}


  Click here to get your Free Trial version of the SDK

Tutorials:

prev
next