MemoryStream ms1 = HtmlToPDFConversion.GenerateGratuityPDF(InnovID, Convert.ToInt32(Session["MappingID"]));
MemoryStream ms2 = HtmlToPDFConversion.GeneratePFPDF(InnovID, Convert.ToInt32(Session["MappingID"]));
MemoryStream ms3 = HtmlToPDFConversion.GeneratePF11FormPDF(InnovID, Convert.ToInt32(Session["MappingID"]));
MemoryStream ms4 = HtmlToPDFConversion.GenerateESICJoiningKitPDF(InnovID, Convert.ToInt32(Session["MappingID"]));
MemoryStream mergedStreams = MergePdfStreams(ms1, ms2, ms3, ms4);
string fileName = $"ComplianceJoiningKit_{InnovID}.pdf";
return base.File(mergedStreams, "application/pdf", fileName);
public static MemoryStream MergePdfStreams(params MemoryStream[] pdfStreams)
{
MemoryStream mergedStream = new MemoryStream();
Document document = new Document();
MemoryStream stream = new MemoryStream();
PdfCopy copy = new PdfCopy(document, stream); //System.NullReferenceException: 'Object reference not set to an instance of an object.
document.Open();
foreach (MemoryStream pdfStream in pdfStreams)
{
PdfReader reader = new PdfReader(pdfStream.ToArray());
for (int i = 1; i <= reader.NumberOfPages; i++)
{
PdfImportedPage page = copy.GetImportedPage(reader, i);
copy.AddPage(page);
}
reader.Close();
}
document.Close();
return stream;
}