iText Knowledge Base

Imagine you have a large PDF file that comprises multiple sections and you want to share only specific sections of this large PDF file with your team members. Since you can’t share this whole PDF with them, you will want to split this PDF into parts so as to share specific sections with respective team members only. Splitting a large PDF has many advantages such as file size management, content organization, enhanced collaboration, and performance optimization. As a .NET application developer, you can add the functionality of splitting PDF files in your C# application.

Introducing iTextPdf and its Splitting Functionality

Before diving into the details of splitting large PDF files, let’s briefly introduce iTextPdf. It is a powerful open-source library that allows developers to create, manipulate, and extract content from PDF documents. iTextPdf provides a wide range of features, including the ability to split PDF files into multiple parts based on specific criteria.

How to Split PDF Files in C#?

To illustrate the process of splitting large PDF files using iTextPdf, let’s take a look at a sample C# code snippet:

// Add necessary using statements
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Kernel.Utils;
// Load the input PDF file
PdfDocument inputPdf = new PdfDocument(new PdfReader("input.pdf"));
// Define the number of pages per split
int pageSize = 10;
// Split the PDF into multiple parts
int pageCount = inputPdf.GetNumberOfPages();
for (int i = 1; i <= pageCount; i += pageSize)
{
    // Create a new output PDF document
    PdfDocument outputPdf = new PdfDocument(new PdfWriter($"output_{i}.pdf"));
    // Copy pages from the input PDF to the output PDF
    inputPdf.CopyPagesTo(i, Math.Min(i + pageSize - 1, pageCount), outputPdf);
    // Close the output PDF document
    outputPdf.Close();
}
// Close the input PDF document
inputPdf.Close();

Code Review – Split PDF C#

Let’s break down the code snippet to understand the iTextPdf API calls and methods involved in splitting large PDF files:

  • First, we load the input PDF file using the PdfDocument class and the PdfReader constructor.
  • Next, we define the desired number of pages per split using the pageSize variable. You can adjust this value according to your requirements.
  • We iterate over the pages of the input PDF using a for loop, starting from the first page (1) and incrementing by the pageSize value in each iteration.
  • Within the loop, we create a new output PDF document using the PdfDocument class and the PdfWriter constructor. The output file is named using the current iteration value.
  • We then use the CopyPagesTo method to copy the desired range of pages from the input PDF to the output PDF. The CopyPagesTo method takes the starting and ending page indices as parameters.
  • Finally, we close the output PDF document to save it and repeat the process until all pages have been processed.

Conclusion

In this blog post, we have explored how to split large PDF files using the iTextPdf library in .NET. We started with a concise introduction, highlighting the importance of splitting PDFs for better document management. Then, we introduced iTextPdf and its powerful splitting functionality. We provided a C# code sample that demonstrated how to split a PDF file into multiple parts based on the desired number of pages. Additionally, we explained the key API calls and methods involved in the code snippet.

By leveraging iTextPdf’s splitting capabilities, you can easily extract and share specific sections of large PDF files, resulting in improved efficiency and enhanced document organization. Stay tuned for more examples of using iTextPdf API in .NET for working with PDF documents.