Skip to content

Instantly share code, notes, and snippets.

@NDiiong
Created December 4, 2020 10:52
Show Gist options
  • Save NDiiong/91523772af5be2a48e2eaabdf412c7a3 to your computer and use it in GitHub Desktop.
Save NDiiong/91523772af5be2a48e2eaabdf412c7a3 to your computer and use it in GitHub Desktop.
Helper PdfDocument support for libary itextsharp
public static class PdfDocument
{
public static void AddRange(this Document document, IEnumerable<IElement> elements)
{
elements.ForEach(f => document.Add(f));
}
public static byte[] Concat(IEnumerable<byte[]> documents)
{
Guard.NotNullOrZeroLength(documents, nameof(documents));
using (var ms = new MemoryStream())
{
var outputDocument = new Document();
var writer = new PdfCopy(outputDocument, ms);
outputDocument.Open();
foreach (var doc in documents)
{
var reader = new PdfReader(doc);
for (var i = 1; i <= reader.NumberOfPages; i++)
{
writer.AddPage(writer.GetImportedPage(reader, i));
}
writer.FreeReader(reader);
reader.Close();
}
writer.Close();
outputDocument.Close();
var allPagesContent = ms.GetBuffer();
ms.Flush();
return allPagesContent;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment