Merge Pdf File in Asp.Net


Description:-

In this Article we will see about how to merge two pdf file in asp.net using ItextSharp. Here I have given demo to merge pdf file in web application.

Default.aspx:-

<div>
  <asp:FileUploadrunat="server"ID="file1"/> 
  <asp:FileUploadrunat="server"ID="file2"/>
  <br/>
  <asp:Button runat="server" ID="btnMerge" Text="Merge PDF" OnClick="btnMerge_Click"/>
</div>

Default.aspx.cs:-

protected void btnMerge_Click(object sender, EventArgs e)
{
  if (file1.HasFile && file2.HasFile)
  {
    PdfReader pdfReader1 = newPdfReader(file1.PostedFile.InputStream);
    PdfReader pdfReader2 = newPdfReader(file2.PostedFile.InputStream);

  List<PdfReader>readerList = newList<PdfReader>();
  readerList.Add(pdfReader1);
  readerList.Add(pdfReader2);

  //Define a new output document and its size, type
  Documentdocument = newDocument(PageSize.A4, 0, 0, 0, 0);
  //Get instance response output stream to write output file.
  PdfWriter writer = PdfWriter.GetInstance(document, Response.OutputStream);
  document.Open();
  foreach (PdfReader reader inreaderList)
  {
    for (int i = 1; i <= reader.NumberOfPages; i++)
    {
      PdfImportedPage page = writer.GetImportedPage(reader, i);
      document.Add(iTextSharp.text.Image.GetInstance(page));
    }
  }
  document.Close();

  Response.AppendHeader("content-disposition", "inline; filename=OutPut.pdf");
  Response.ContentType = "application/pdf";
  }
}


private void MergePDFs(stringoutPutFilePath, paramsstring[] filesPath)
{
  List<PdfReader>readerList = newList<PdfReader>();
  foreach (stringfilePathinfilesPath)
  {
    PdfReaderpdfReader = newPdfReader(filePath);
    readerList.Add(pdfReader);
  }
  //Define a new output document and its size, type
  Documentdocument = newDocument(PageSize.A4, 0, 0, 0, 0);
  //Create blank output pdf file and get the stream to write on it.
  PdfWriter writer = PdfWriter.GetInstance(document, newFileStream(outPutFilePath, FileMode.Create));
  document.Open();

  foreach (PdfReader reader inreaderList)
  {
    for (int i = 1; i <= reader.NumberOfPages; i++)
    {
      PdfImportedPage page = writer.GetImportedPage(reader, i);
      document.Add(iTextSharp.text.Image.GetInstance(page));
    }
  }
  document.Close();
}

Related Posts

Previous
Next Post »

Thanks for comments.....