You have to use the PDF combine for merging the exported PDF file with another PDF file as license agreement template. Refer to the following code sample controller,
public IActionResult Export()
{
// Export the RDL To PDF.
FileStream mainReportStream = new FileStream(_hostingEnvironment.WebRootPath + @"\Reports\Sales Order Detail.rdl", FileMode.Open, FileAccess.Read);
MemoryStream reportStream = new MemoryStream();
mainReportStream.CopyTo(reportStream);
reportStream.Position = 0;
mainReportStream.Close();
//Template File
FileStream templateStream = new FileStream(_hostingEnvironment.WebRootPath + @"\PDF\Template.pdf", FileMode.Open, FileAccess.Read);
BoldReports.Writer.ReportWriter writer = new BoldReports.Writer.ReportWriter();
MemoryStream memoryStream = new MemoryStream();
writer.LoadReport(reportStream);
writer.Save(memoryStream, BoldReports.Writer.WriterFormat.PDF);
// Download the generated export document to the client side.
memoryStream.Position = 0;
FileStreamResult fileStreamResult = new FileStreamResult(memoryStream, "application/pdf");
var exportedPdfSream = fileStreamResult.FileStream;
// Combine the Exported PDF and template
PdfDocument finalDoc = new PdfDocument();
// Creates a PDF stream for merging
Stream[] streams = { exportedPdfSream, templateStream };
// Merges the PDF document.
PdfDocumentBase.Merge(finalDoc, streams);
//Save the document into a stream
MemoryStream combinestream = new MemoryStream();
finalDoc.Save(combinestream);
combinestream.Position = 0;
FileStreamResult fileStreamResult1 = new FileStreamResult(combinestream, "application/pdf");
var combinePDF = fileStreamResult1.FileStream;
// Add Page number for the combined PDF
PdfLoadedDocument loadedDoc = new PdfLoadedDocument(combinePDF);
//Set the font.
PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 12f);
//Create a page number field.
PdfPageNumberField pageNumber = new PdfPageNumberField(font, PdfBrushes.Black);
//Create a page count field.
PdfPageCountField count = new PdfPageCountField(font, PdfBrushes.Black);
//Add the fields in composite fields.
PdfCompositeField compositeField = new PdfCompositeField(font, PdfBrushes.Black, "Page {0} of {1}", pageNumber, count);
for (int i = 0; i < loadedDoc.Pages.Count; i++)
{
//Draw the composite field.
compositeField.Draw(loadedDoc.Pages[i].Graphics, new PointF(loadedDoc.Pages[i].Size.Width / 2 - 20, loadedDoc.Pages[i].Size.Height - 20));
}
MemoryStream combineWithPagenumber = new MemoryStream();
loadedDoc.Save(combineWithPagenumber);
//Save the document.
combineWithPagenumber.Position = 0;
//Close the document.
loadedDoc.Close(true);
finalDoc.Close(true);
string contentType = "application/pdf";
//Define the file name
string fileName = "Combinewithpagenumber.pdf";
//Creates a FileContentResult object by using the file contents, content type, and file name
return File(combineWithPagenumber, contentType, fileName);
}