Append two or more existing PDF files

Append two or more existing PDF files

The following code sample shows how to append PDF files.

// create the target document
Document documentOut = new Document();

// append 2 documents
using (FileStream file1 = new FileStream("1.pdf", FileMode.Open, FileAccess.Read))
using (FileStream file2 = new FileStream("2.pdf", FileMode.Open, FileAccess.Read))
{
   Document documentIn = new Document(file1);
   foreach (Page page in documentIn.Pages)
   {
      // append each page to the target document
      // it is required to clone the page
      documentOut.Pages.Add(page.Clone());
   }
         
   documentIn = new Document(file2);
         
   // append all pages to the target document
   documentOut.Pages.AddRange(documentIn.Pages.CloneToArray());
}
' create the target document
Dim documentOut As New Document()

' append 2 documents
Using inFile1 As New FileStream("..\..\..\inputDocuments\PackingLightBrochure.pdf", FileMode.Open, FileAccess.Read)
    Using inFile2 As New FileStream("..\..\..\inputDocuments\TheresMoreToAcrobat.pdf", FileMode.Open, FileAccess.Read)
        Dim documentIn As Document

        documentIn = New Document(inFile1)
        For Each page As Page In documentIn.Pages
            ' append page to the target document, we don't want to change the documentIn, so Clone the page.
            documentOut.Pages.Add(page.Clone())
        Next

        documentIn = New Document(inFile2)

        ' append all pages to the target document
        documentOut.Pages.AddRange(documentIn.Pages.CloneToArray())

        ' write the target document to disk
        ' note that when the target document is written, the source streams
        ' must still be open. for efficiency reasons, all source page content 
        ' is extracted as late as possible
        Using outFile As New FileStream("..\..\append.pdf", FileMode.Create, FileAccess.Write)
            documentOut.Write(outFile)
        End Using
    End Using
End Using