Minggu, 27 Januari 2019

How To Convert Html To Pdf Using C#?

     In this department nosotros are going to encounter how to convert the pure html in addition to css code to pdf using itextsharp in addition to itexsharp.xmlworker dll's.


Download itextsharp.xmlworker.dll
Downlaod itextsharp.dll

Note:
     You should usage the same version of the itextsharp.dll in addition to itextsharp.xmlworker.dl

If you lot non usage the same version you lot volition encounter similar the next error.
 Server Error inwards '/' Application.

Compilation Error

Description: An mistake occurred during the compilation of a resources required to service this request. Please review the next specific mistake details in addition to alter your origin code appropriately.

Compiler Error Message: CS1705: Assembly 'itextsharp.xmlworker, Version=5.5.8.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca' uses 'itextsharp, Version=5.5.8.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca' which has a higher version than referenced assembly 'itextsharp, Version=5.5.0.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca'

Source Error:


[No relevant origin lines]

Source File:    Line: 0


 In this department nosotros are going to encounter how to convert the pure html in addition to css code to pdf usin How to convert html to pdf using c#?
Client Side code:
  <asp:HiddenField runat="server" ID="selectedhtml" />  <asp:ImageButton ID="lnkPDF" ImageUrl=" /App_Themes/Blue/images/adobe.jpg" ToolTip="Export to PDF"                         runat="server" OnClick="lnkPDF_Clicked"></asp:ImageButton>&nbsp;&nbsp;&nbsp;  <div id="testdiv">   <div id="tdiv1">     <img src="sample.jpg" />     <table>       <tr>         <th>Name</th>         <th>Age</th>       </tr>       <tr>         <td>Merbin</td>         <td>29</td>       </tr>       <tr>         <td>Franklin</td>         <td>30</td>       </tr>       <tr>         <td>Justus</td>         <td>45</td>       </tr>     </table>   </div> </div>    <script>       var btnobj = document.getElementById("<%=lnkPDF.ClientID%>");      btnobj.addEventListener("click", myfun);       purpose myfun() {               document.getElementById('<%=selectedhtml.ClientID%>').value = document.getElementById('testdiv').innerHTML.replace(/(<img[^>]+)/g, "$1 /");           }  </script>  


HTML code are converted into xhtml in addition to later exclusively it volition procedure in addition to thence nosotros accept approximately limitation eg) you lot should necessitate to unopen the picture tag in addition to etc.
If you lot are larn the innerHTML content the picture unopen tag won't larn you lot in addition to thence you lot tin supercede the picture unopen tag yesteryear using the next line.
 document.getElementById('<%=selectedhtml.ClientID%>').value = document.getElementById('testdiv').innerHTML.replace(/(]+)/g, "$1 /");


Server Side Code:
protected void lnkPDF_Clicked(object sender, EventArgs e)     {          Document Doc;         Doc = new Document(PageSize.A4, 10f, 10f, 50f, 20f);          string filename = "PaySlip";                  string outXml = selectedhtml.Value;         outXml = "<style>#tdiv1{background:red;color:white;}</style>" + outXml;         outXml = outXml.Replace("px", "");         outXml = outXml.Replace("<br>", "<br/>");          MemoryStream memStream = new MemoryStream();         TextReader xmlString = new StringReader(outXml);         using (Document document = new Document())         {             PdfWriter author = PdfWriter.GetInstance(document, memStream);             document.Open();             byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(outXml);             MemoryStream ms = new MemoryStream(byteArray);             XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, ms, System.Text.Encoding.UTF8);             document.Close();         }          Response.ContentType = "application/pdf";         Response.AddHeader("content-disposition", "attachment;filename=" + filename + ".pdf");         Response.Cache.SetCacheability(HttpCacheability.NoCache);         Response.BinaryWrite(memStream.ToArray());         Response.End();         Response.Flush();     } 



No necessitate to seat the px inwards styles, in addition to thence you lot tin supercede the px to "" value yesteryear using the next line.
outXml = outXml.Replace("px", "");

innerHTML won't unopen the <br> tag in addition to thence you lot should necessitate to supercede the <br> tag to <br/>.
outXml = outXml.Replace("<br>", "<br/>");



View Generated PDF file




Tags:
convert pdf to html inwards allinworld99, css non back upward spell generating pdf from html code inwards allinworld99, background color non supported inwards htmlworker inwards allinworld99, how to convert htmlwoker to xmlworker inwards allinworld99,

Tidak ada komentar:

Posting Komentar