We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date

Splitting a big pdf by each page

The following signature shall be provided "public static List SplitThatPDF(byte[] myFile)", how to do this ? (e.g. a document with 30 pages, shall be splitted into 30 single pages returning as List)

3 Replies

SK Surya Kumar Syncfusion Team February 20, 2017 12:41 PM UTC

Hi Syress, 
 
We appreciate your interest towards Syncfusion products. 
 
We can split all the pages in a document and it can be stored in a list, We have attached code snippet for saving each page to list as individual PDF document. Please find the code snippet below 
 
            //Converting loaded file to Byte array 
 
            byte[] dataBytes = File.ReadAllBytes("loaded.pdf"); 
 
 
            //Saving individual pages as  PdfDocument 
 
            List<PdfDocument> seperatePDF = SeperateAsPDF(dataBytes); 
 
Code snippet for saving each page to list as individual PdfDocument: 
     public static List<PdfDocument> SeperateAsPDF(byte[] myFile) 
        { 
            //Load document. 
 
            PdfLoadedDocument loadedDocument = new PdfLoadedDocument(myFile); 
 
            List<PdfDocument> PdfList = new List<PdfDocument>(); 
 
            for(int i = 0; i < loadedDocument.Pages.Count; i++) 
            { 
                PdfDocument doc = new PdfDocument(); 
                doc.ImportPageRange(loadedDocument, i, i); 
                PdfList.Add(doc); 
                
            } 
            return PdfList; 
 
         } 
 
Essential PDF also allows to split the pages of an existing PDF document into multiple individual PDF documents. The following code snippet explains the same. 
             //Load document. 
 
            PdfLoadedDocument loadedDocument = new PdfLoadedDocument("Output.pdf"); 
 
            //Sets pattern. 
 
            const string destFilePattern = "Output" + "{0}.pdf"; 
 
            //Split the pages into separate documents. 
 
            loadedDocument.Split(destFilePattern); 
 
            //close the document 
 
            loadedDocument.Close(true); 
 
 
 
Please let us know if you need any further information regarding this. 
 
Regards, 
Surya Kumar. 



SS Syress Sumartha February 27, 2017 11:16 AM UTC

The Return type should be List<byte[]> . Can you adjust this ?


SK Surya Kumar Syncfusion Team February 28, 2017 11:06 AM UTC

Hi Syress,  
  
Thanks for your update.  
  
Please find the modified code snippet as you requested, please let us know if this satisfies your requirement. 
 
            //Converting loaded file to Byte array  
  
            byte[] dataBytes = File.ReadAllBytes("loaded.pdf");  
  
  
            //Saving individual pages as  PdfDocument  
  
            List<byte[]> seperatePDF = SeperateAsPDF(dataBytes);  
  
Code snippet for saving each page to list as individual Byte array:  
 
     public static List<byte[]> SeperateAsPDF(byte[] myFile)  
        {  
            //Load document.  
  
            PdfLoadedDocument loadedDocument = new PdfLoadedDocument(myFile);  
  
            List<PdfDocument> pdfBytes= new List<PdfDocument>();  
  
            for(int i = 0; i < loadedDocument.Pages.Count; i++)  
            {  
                MemoryStream stream = new MemoryStream(); 
                PdfDocument doc = new PdfDocument();  
                doc.ImportPageRange(loadedDocument, i, i);  
                doc.Save(stream); 
                pdfBytes.Add(stream.ToArray()); 
                stream.Dispose(); 
            }  
            return pdfBytes;  
  
         }  
  
 
 
Regards, 
Surya Kumar 


Loader.
Up arrow icon