Mit iTextSharp lassen sich einigermassen komfortabel mehrere PDF-Dateien in eine einzige mergen.

Folgendes Skript zeigt wies geht:

 

using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

public class PdfMerge
{
    public static void MergeFiles(string destinationFile, string[] sourceFiles)
    {
        try
        {
            int f = 0;
            
            PdfReader reader = new PdfReader(sourceFiles[f]);
            int n = reader.NumberOfPages;
            Document document = new Document(reader.GetPageSizeWithRotation(1));
            PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(destinationFile, FileMode.Create));
            document.Open();
            PdfContentByte cb = writer.DirectContent;
            PdfImportedPage page;
            int rotation;
     
            while (f < sourceFiles.Length)
            {
                int i = 0;
                while (i < n)
                {
                    i++;
                    document.SetPageSize(reader.GetPageSizeWithRotation(i));
                    document.NewPage();
                    page = writer.GetImportedPage(reader, i);
                    rotation = reader.GetPageRotation(i);
                    if (rotation == 90 || rotation == 270)
                        cb.AddTemplate(page, 0, -1f, 1f, 0, 0, reader.GetPageSizeWithRotation(i).Height);
                    else
                        cb.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);
                }
                f++;

                if (f < sourceFiles.Length)
                {
                    reader = new PdfReader(sourceFiles[f]);
                    n = reader.NumberOfPages;
                }
            }

            document.Close();
        }
        catch (Exception ex)
        {
            Console.Error.WriteLine(ex.Message);
        }
    }
}