Using Spire.PDF, you can not only merge multiple PDF files into a single file, but also select specific pages from the source files and combine them in one PDF document. The following code snippets demonstrate the same.
Step 1: Get the PDF file paths and store in a string array.
string[] files = { "Sample1.pdf", "Sample2.pdf", "Sample3.pdf" };
Step 2: Load each PDF document to an object of PdfDocument and store all these objects in PdfDocument array.
PdfDocument[] docs = new PdfDocument[files.Length]; for (int i = 0; i < files.Length; i++) { docs[i] = new PdfDocument(files[i]); }
Step 3: Create an instance of PdfDocument class.
PdfDocument doc = new PdfDocument();
Step 4: Call InsertPage(PdfDocument doc, int pageIndex) method and InertPageRange(PdfDocument doc, int startIndex, int endIndex) method to insert selected pages to the new PDF document.
doc.InsertPage(docs[0], 0); doc.InsertPage(docs[1], 1); doc.InsertPageRange(docs[2], 2, 5);
Step 5: Save and launch the file.
doc.SaveToFile("Result.pdf"); Process.Start("Result.pdf");
Screen Shot of Effect:
The six pages in the result file are extracted from three sample PDF files.
Full Code:
using Spire.Pdf; using System.Diagnostics; namespace MergeSelectedPages { class Program { static void Main(string[] args) { string[] files = { "Sample1.pdf", "Sample2.pdf", "Sample3.pdf" }; PdfDocument[] docs = new PdfDocument[files.Length]; //open pdf documents for (int i = 0; i < files.Length; i++) { docs[i] = new PdfDocument(files[i]); } //create a new pdf document and insert selected pages PdfDocument doc = new PdfDocument(); doc.InsertPage(docs[0], 0); doc.InsertPage(docs[1], 1); doc.InsertPageRange(docs[2], 2, 5); doc.SaveToFile("Result.pdf"); Process.Start("Result.pdf"); } } }
Imports Spire.Pdf Imports System.Diagnostics Namespace MergeSelectedPages Class Program Private Shared Sub Main(args As String()) Dim files As String() = {"Sample1.pdf", "Sample2.pdf", "Sample3.pdf"} Dim docs As PdfDocument() = New PdfDocument(files.Length - 1) {} 'open pdf documents For i As Integer = 0 To files.Length - 1 docs(i) = New PdfDocument(files(i)) Next 'create a new pdf document and insert selected pages Dim doc As New PdfDocument() doc.InsertPage(docs(0), 0) doc.InsertPage(docs(1), 1) doc.InsertPageRange(docs(2), 2, 5) doc.SaveToFile("Result.pdf") Process.Start("Result.pdf") End Sub End Class End Namespace