Converting html document to PDF,Word and Excel document

In this blog, I will explain how to convert HTML documents to pdf, word, and excel. Here I am using itextSharp to convert the document.

First of all, we need to install itextshap and itextsharp.xmlworker from nuget package manager.

step1: Install ItextSharp and ItextSharp.xmlWorker

step2: In Html Page write the below code: for generating pdf file

<div id="Grid">  
   //Your html content  
</div>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
    $(function () {
        $("#btnSubmit").click(function () {
            $("input[name='GridHtml']").val($("#Grid").html());
        });
    });
</script>

step 3: Write below code in Controller

[HttpPost]
        [ValidateInput(false)]
        public FileResult Pdf(string Html)
        {
            using (MemoryStream stream = new System.IO.MemoryStream())
            {
                StringReader sr = new StringReader(Html);
                Document Doc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
                PdfWriter writer = PdfWriter.GetInstance(Doc, stream);
                Doc.Open();
                XMLWorkerHelper.GetInstance().ParseXHtml(writer, Doc, sr);
                Doc.Close();
                return File(stream.ToArray(), "application", "File.pdf");
            }
        }

 

step 4: we can also do the same thing for converting HTML documents to Word and Excel.

@using (Html.BeginForm("Word", "Students", FormMethod.Post))
       {
           <input type="hidden" name="ExportWord" />
           <input type="submit" id="btnWord" value="Word" />

       }
  
   @using (Html.BeginForm("Excel", "Students", FormMethod.Post))
   {
       <input type="hidden" name="ExportExcel" />
       <input type="submit" id="btnExcel" value="Excel" />
   }
<div id="Grid"> 
   //Your html content 
 </div> 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
 $(function () {
  $("#btnWord").click(function () {
    $("input[name='GridHtml']").val($("#Grid").html());
  });
});
$(function () {
  $("#btnExcel").click(function () {
    $("input[name='GridHtml']").val($("#Grid").html());
  });
});
</script>

step 5:  In Controller

[HttpPost]
        [ValidateInput(false)]
        public EmptyResult Word(string ExportWord)
        {
            Response.Clear();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", "attachment;filename=file.doc");
            Response.Charset = "";
            Response.ContentType = "application/msword";
            Response.Output.Write(ExportWord);
            Response.Flush();
            Response.End();
            return new EmptyResult();
        }
        [HttpPost]
        [ValidateInput(false)]
        public EmptyResult Excel(string ExportExcel)
        {
            Response.Clear();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", "attachment;filename=ExcelExport.xls");
            Response.Charset = "";
            Response.ContentType = "application/vnd.ms-excel";
            Response.Output.Write(ExportExcel);
            Response.Flush();
            Response.End();
            return new EmptyResult();
        }

step 6: Now Run the Project and See the Output.

Submit a Comment

Your email address will not be published. Required fields are marked *

Subscribe

Select Categories