How to Merge PDF Files Using iTextSharp
Merging PDF documents is a common requirement in various software applications, such as document management systems, report generation tools, and more. In the .NET ecosystem, developers have several libraries at their disposal to manipulate PDF files. iTextSharp and IronPDF are two popular choices for working with PDFs in C# applications. In this article, we will explore how to merge PDFs using iTextSharp and compare it with IronPDF to help you make an informed decision when choosing a library for your PDF manipulation needs.
How to Merge PDF Files Using iTextSharp
Here's a step-by-step guide on how to merge PDFs using iTextSharp:
- Create a new
Document
object and specify a base path for your PDF files. - Open the
Document
for editing. - Define an array of PDF file names to merge.
- For each PDF file in the list, create a
PdfReader
, add its contents to thePdfCopy
object, and then close thePdfReader
. - Close the
Document
, finalizing the merged PDF.
IronPDF
IronPDF Webpage is a .NET library that empowers developers to create, modify, and interact with PDF documents within their C# and .NET applications. It simplifies PDF-related tasks by offering features like PDF generation from scratch, HTML to PDF conversion, PDF manipulation (including adding, removing, and modifying content), interactive form handling, PDF merging and splitting, encryption, and cross-platform compatibility, making it a valuable tool for a wide range of applications requiring PDF document management and generation.
iTextSharp
iTextSharp has been replaced by iText 7, as it has reached its End-of-Life (EOL), with only security fixes in sight. It's highly recommended to use iText 7 or consider transitioning existing ones for new projects. iText 7 offers significant improvements, including HTML to PDF conversion, PDF redaction, SVG support, better language support, debugging tools, data extraction, and more modular functionality. It simplifies PDF document handling and is available under AGPL and Commercial licenses.
Install IronPDF Library
To install the IronPDF NuGet package in your Visual Studio project, you can follow these steps:
- Start by opening your project in Visual Studio where you want to use the IronPDF library.
- If you're using Visual Studio, go to Tools > NuGet Package Manager > Package Manager Console.
- In the Package Manager Console, run the following command to install IronPDF:
Install-Package IronPdf
Visual Studio will download and install the package and its dependencies. You can monitor the progress in the Output window. Once the installation is complete, you can start using IronPDF in your C# code.
With IronPDF successfully installed, you can now start using it in your project. Include the necessary "using" statements in your code files and begin working with PDFs using IronPDF's functionality.
using IronPdf;
using IronPdf;
Imports IronPdf
You can now access the features and functionality provided by IronPDF to work with PDF documents in your C# project. Remember to save your project and build it to ensure that the library is properly integrated.
Install iTextSharp PDF Library
To install the iTextSharp PDF library in a C# project, follow these steps:
- Open the C# project where you want to use the iTextSharp library in your preferred integrated development environment (IDE), such as Visual Studio.
- Go to Tools > NuGet Package Manager > Package Manager Console.
- In the Package Manager Console, run the following command:
Install-Package iTextSharp
This command tells NuGet (the package manager for Visual Studio) to download and install the iTextSharp package and its dependencies into your project.
NuGet will download and install the iTextSharp package and any required dependencies. You can monitor the installation progress in the Package Manager Console.
Once the installation is complete, you'll see a confirmation message in the Package Manager Console indicating that the iTextSharp package has been successfully installed. With iTextSharp successfully installed, you can now start using it in your project. Include the necessary using
statements in your code files and begin working with PDFs using iTextSharp's functionality.
Merge PDFs to a Single PDF Document Using IronPDF
IronPDF provides a direct method to merge multiple PDF files into a single PDF. IronPDF offers great flexibility when it comes to merging PDF documents. The following sample code demonstrates the merging of PDFs into a single PDF file:
using IronPdf;
using System.Collections.Generic;
static void Main(string[] args)
{
string basePath = @"D:\PDFFiles\";
string[] pdfFiles = { "PdfFile_1.pdf", "PdfFile_2.pdf" };
// Create a list to hold the PDF documents to be merged
List<PdfDocument> docList = new List<PdfDocument>();
// Add each PDF to the list
foreach (string filename in pdfFiles)
{
docList.Add(new PdfDocument(basePath + filename));
}
// Merge the PDFs into one document
var mergedPDF = PdfDocument.Merge(docList);
// Save the merged PDF to the specified path
mergedPDF.SaveAs(basePath + "mergePDFbyIronPDF.pdf");
}
using IronPdf;
using System.Collections.Generic;
static void Main(string[] args)
{
string basePath = @"D:\PDFFiles\";
string[] pdfFiles = { "PdfFile_1.pdf", "PdfFile_2.pdf" };
// Create a list to hold the PDF documents to be merged
List<PdfDocument> docList = new List<PdfDocument>();
// Add each PDF to the list
foreach (string filename in pdfFiles)
{
docList.Add(new PdfDocument(basePath + filename));
}
// Merge the PDFs into one document
var mergedPDF = PdfDocument.Merge(docList);
// Save the merged PDF to the specified path
mergedPDF.SaveAs(basePath + "mergePDFbyIronPDF.pdf");
}
Imports IronPdf
Imports System.Collections.Generic
Shared Sub Main(ByVal args() As String)
Dim basePath As String = "D:\PDFFiles\"
Dim pdfFiles() As String = { "PdfFile_1.pdf", "PdfFile_2.pdf" }
' Create a list to hold the PDF documents to be merged
Dim docList As New List(Of PdfDocument)()
' Add each PDF to the list
For Each filename As String In pdfFiles
docList.Add(New PdfDocument(basePath & filename))
Next filename
' Merge the PDFs into one document
Dim mergedPDF = PdfDocument.Merge(docList)
' Save the merged PDF to the specified path
mergedPDF.SaveAs(basePath & "mergePDFbyIronPDF.pdf")
End Sub
The above code uses the IronPDF library to merge two PDF files ("PdfFile_1.pdf" and "PdfFile_2.pdf") located in the specified base path ("D:\PDFFiles"). It creates a list of PdfDocument
objects, adds the input PDFs to the list, merges them into a single PDF using PdfDocument.Merge
, and saves the merged PDF as "mergePDFbyIronPDF.pdf" in the same base path.
The following is the sample PDFs used in this example:
The following is the merged PDF file:
Merge Multiple PDF Files using iTextSharp
iTextSharp does not provide a direct method to merge PDF files. However, we can achieve it by opening each input PDF and adding its content to the output document. The following sample code merges PDF files into a single PDF document:
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;
static void Main(string[] args)
{
// Create a new Document
Document doc = new Document();
string basePath = @"D:\PDFFiles\";
// Create a PdfCopy instance to copy pages from source PDFs
PdfCopy copy = new PdfCopy(doc, new FileStream(basePath + "mergePdf.pdf", FileMode.Create));
// Open the document for writing
doc.Open();
string[] pdfFiles = { "PdfFile_1.pdf", "PdfFile_2.pdf" };
// Loop through all the PDF files to be merged
foreach (string filename in pdfFiles)
{
// Read the content of each PDF
PdfReader reader = new PdfReader(basePath + filename);
// Add the document to PdfCopy
copy.AddDocument(reader);
// Close the reader
reader.Close();
}
// Close the Document
doc.Close();
}
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;
static void Main(string[] args)
{
// Create a new Document
Document doc = new Document();
string basePath = @"D:\PDFFiles\";
// Create a PdfCopy instance to copy pages from source PDFs
PdfCopy copy = new PdfCopy(doc, new FileStream(basePath + "mergePdf.pdf", FileMode.Create));
// Open the document for writing
doc.Open();
string[] pdfFiles = { "PdfFile_1.pdf", "PdfFile_2.pdf" };
// Loop through all the PDF files to be merged
foreach (string filename in pdfFiles)
{
// Read the content of each PDF
PdfReader reader = new PdfReader(basePath + filename);
// Add the document to PdfCopy
copy.AddDocument(reader);
// Close the reader
reader.Close();
}
// Close the Document
doc.Close();
}
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports System.IO
Shared Sub Main(ByVal args() As String)
' Create a new Document
Dim doc As New Document()
Dim basePath As String = "D:\PDFFiles\"
' Create a PdfCopy instance to copy pages from source PDFs
Dim copy As New PdfCopy(doc, New FileStream(basePath & "mergePdf.pdf", FileMode.Create))
' Open the document for writing
doc.Open()
Dim pdfFiles() As String = { "PdfFile_1.pdf", "PdfFile_2.pdf" }
' Loop through all the PDF files to be merged
For Each filename As String In pdfFiles
' Read the content of each PDF
Dim reader As New PdfReader(basePath & filename)
' Add the document to PdfCopy
copy.AddDocument(reader)
' Close the reader
reader.Close()
Next filename
' Close the Document
doc.Close()
End Sub
The above code using iTextSharp merges two PDF files ("PdfFile_1.pdf" and "PdfFile_2.pdf") from the specified base path ("D:\PDFFiles") into a single PDF named "mergePdf.pdf." It accomplishes this by opening each input PDF, adding its content to the output document, and then closing the documents. The above code will merge multiple PDFs into one PDF.
We have used two input files as follows:
The new file created by our code is as follows:
Conclusion
In comparison to iTextSharp, IronPDF emerges as the superior choice for merging PDF documents in C# applications. While both libraries are capable, IronPDF offers a more user-friendly interface, modern features like HTML to PDF conversion, clear licensing options, straightforward integration through NuGet, and active development, collectively simplifying the merging process, reducing development time, and ensuring a more reliable solution for PDF-related tasks. Its user-friendly interface, robust feature set, and continuous development make IronPDF the superior solution for merging PDFs in C#.
Frequently Asked Questions
What are alternatives for PDF manipulation libraries in C#?
iTextSharp and IronPDF are popular libraries used for PDF manipulation in C# applications. iTextSharp has reached its End-of-Life and is succeeded by iText 7, while IronPDF is a modern library that offers extensive features for PDF creation and manipulation.
How can I merge PDF files using a commonly used PDF library?
To merge PDFs using iTextSharp, you create a Document object, open it, and use a PdfCopy instance to add pages from each PDF file. After processing all files, you close the Document to finalize the merged PDF.
What steps are involved in merging PDFs with a modern library?
Using IronPDF, you create PdfDocument objects for each file, add them to a list, and use the PdfDocument.Merge method to combine them into a single PDF. The merged document can then be saved to your desired location.
Why is a modern PDF library recommended over older alternatives for merging PDFs?
IronPDF is preferred because of its user-friendly interface, modern features like HTML to PDF conversion, active development, and clear licensing options, making it more efficient for developers.
How do you install a PDF library in a Visual Studio project?
To install IronPDF, open your project in Visual Studio, navigate to Tools > NuGet Package Manager > Package Manager Console, and run the command 'Install-Package IronPDF'. This will download and integrate the library into your project.
Is it necessary to transition from older PDF libraries to newer versions?
Yes, it is highly recommended to transition to iText 7 as iTextSharp has reached its end-of-life and only receives security updates. iText 7 provides improved functionality and modularity.
Can a modern PDF library be used for other PDF manipulations besides merging?
Yes, IronPDF offers a wide range of features including PDF generation from scratch, HTML to PDF conversion, content modification, form handling, encryption, and more.
What are the licensing options for modern PDF libraries?
IronPDF offers straightforward licensing options suitable for various project requirements, including commercial use, ensuring compliance and support for developers.
How does a modern PDF library simplify the PDF merging process?
IronPDF simplifies the merging process by providing direct methods to combine PDFs, reducing development time, and offering a more streamlined integration with C# projects through NuGet.
What improvements do newer PDF libraries offer over older ones?
iText 7 offers enhancements like HTML to PDF conversion, PDF redaction, SVG support, better language support, and more modular functionality, making it a more robust and feature-rich library.