PDF-Dateien mergen
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); } } }