• Javascript
  • Python
  • Go

Combine PDFs using C#

PDFs (Portable Document Format) have become a staple in the world of digital documents. Many times, we come across situations where we need ...

PDFs (Portable Document Format) have become a staple in the world of digital documents. Many times, we come across situations where we need to combine multiple PDFs into one file. Whether it’s for work, school, or personal use, having the ability to merge PDFs can save us time and effort.

In this article, we will explore how to combine PDFs using C#, a popular programming language. C# is a versatile and powerful language that is commonly used for developing desktop applications, web applications, and game development.

Before we dive into the code, let’s briefly discuss the different methods of combining PDFs. There are two main approaches – merging and appending. Merging is the process of merging two or more PDFs into one, while appending is the process of adding pages from one PDF to another. In this article, we will focus on merging PDFs.

To merge PDFs using C#, we will be using a third-party library called iTextSharp. This library provides a simple and efficient API for manipulating PDF documents. It can be easily integrated into any C# project using NuGet, a package manager for .NET.

Let’s get started by creating a new C# console application in Visual Studio. Once the project is created, right-click on the solution and select ‘Manage NuGet Packages’. In the ‘Browse’ tab, search for ‘iTextSharp’ and install the latest version of the library.

Next, add the following using statement to the top of the Program.cs file:

using iTextSharp.text.pdf;

First, we need to create an object of the PdfReader class for each PDF file we want to merge. This class allows us to read and manipulate PDF documents. We will also create an empty document using the Document class from the iTextSharp library.

PdfReader pdfReader1 = new PdfReader("File1.pdf");

PdfReader pdfReader2 = new PdfReader("File2.pdf");

Document document = new Document();

Next, we will use the PdfCopy class to merge the PDFs. This class allows us to copy pages from one or more PDF documents and add them to the new document. We will also create an instance of the PdfWriter class to write the merged document to a specified location.

PdfCopy copy = new PdfCopy(document, new FileStream("MergedFile.pdf", FileMode.Create));

document.Open();

copy.AddDocument(pdfReader1);

copy.AddDocument(pdfReader2);

document.Close();

And that’s it! We have successfully merged two PDFs into one using C# and iTextSharp.

But what if we want to merge multiple PDFs at once? We can simply add more PdfReader objects and use the same copy.AddDocument() method to add them to the merged document.

PdfReader pdfReader3 = new PdfReader("File3.pdf");

copy.AddDocument(pdfReader3);

We can also specify which pages from each PDF we want to merge. For example, if we only want to merge the first two pages of File1.pdf and all pages of File2.pdf, we can use the following code:

copy.AddDocument(pdfReader1, 1, 2);

copy.AddDocument(pdfReader2);

Additionally, we can also add bookmarks and table of contents to the merged document using the PdfCopy class.

In conclusion, merging PDFs using C# is a simple and straightforward process with the help of the iTextSharp library. We can easily customize the merging process according to our needs and create a single, organized document. This can be particularly useful for businesses and organizations that deal with a large number of PDF documents on a daily basis.

I hope this article has provided you with a better understanding of how to combine PDFs using C# and the iTextSharp library. With this knowledge, you can now efficiently manage your PDF documents and save time by merging them into one file. Happy coding!

Related Articles

C# Loop: Break vs. Continue

C# is a popular programming language that is widely used in various applications and systems. One of the key features of C# is its ability t...

Build Failure: sgen.exe

Build failures are common occurrences in software development, and they can be frustrating and time-consuming to resolve. However, some buil...