Generate Word Document by retrieving html content from Database in asp.net
Generate Word Document by retrieving html content from Database in asp.net
protected void btnGenerateDocument_Click(object sender, EventArgs e)
     {
        catalog_GetFrontMatterContentByCodeTableAdapter frontMatterTA = new catalog_GetFrontMatterContentByCodeTableAdapter();
        DataTable frontMatterDT = frontMatterTA.GetFrontMatterContentByCode("RGEN");
         frontMatterDT.TableName = "frontmatterContentDS";
        //string str = frontMatterDT.Rows[1]["SectionMarkup"].ToString();
        string str = "";
         str = "<div style='mso-element:header' id=h1><p class=MsoFooter><img src='http://localhost:3678/Generating Word Document/images/header.jpg'></p></div>";
         str += "<h1 style='font-size:24pt; font-family:Times New Roman;'>"+frontMatterDT.Rows[0]["PageTitle"].ToString()+"</h1>";
        for (int i = 0; i < frontMatterDT.Rows.Count; i++)
         {
            str += "<h3  style='font-size:18pt; font-family:Times New Roman;'>".ToString() + frontMatterDT.Rows[i]["SectionHeader"].ToString() + "</h3>".ToString();
             str += frontMatterDT.Rows[i]["SectionMarkup"].ToString();
        }
        StringBuilder sb = new StringBuilder();
         sb.Append(@"<html  
              xmlns:o='urn:schemas-microsoft-com:office:office' 
              xmlns:w='urn:schemas-microsoft-com:office:word' 
                  xmlns='http://www.w3.org/TR/REC-html40'>
              <head><title>Catalog pdf</title>");
        sb.Append(@"<!--[if gte mso 9]>
                         <xml>
                         <w:WordDocument>
                         <w:View>Print</w:View>
                          <w:Zoom>90</w:Zoom> 
                         <w:DoNotOptimizeForBrowser/>
                         </w:WordDocument>
                         </xml> 
                         <![endif]-->");
        sb.Append(@"<style>
                    <!-- /* Style Definitions */
                    @page Section1
                     {
                     size:8.0in 11.0in; 
                     margin:.5in 1.0in 1.0in 1.0in ; 
                     mso-header-margin:.001in;                      
                      mso-page-orientation: portrait; 
                     mso-footer-margin:.001in; mso-paper-source:0;}
                    div.Section1
                    {
                      page:Section1;
                    }
                    -->
                   </style></head>");
        sb.Append(@"<body lang=EN-US style='tab-interval:.5in'>
                             <div class=Section1>
                            <br>");
        sb.Append(@"<p><br>" + str + "</p>");
         sb.Append(@"</div></body></html>");
        Response.AppendHeader("Content-Type", "application/msword");
        Response.AppendHeader("Content-disposition", "inline; filename=generatedwordoc.doc");
         Response.Write(sb);
    }
 
Comments
Post a Comment