You can iTextSharp
HTMLWorker
class to convert HTML to PDF:
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=Panel.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
var example_html = @"<p>This is some sample text<span style="">!!!</span></p>";
StringReader sr = new StringReader(example_html);
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
Everything will work fine but HTMLWorker is obsolete. So instead you can use XMLWorkerHelper to get more advantage:
Firstly install class in Nuget console:
Install-Package itextsharp.xmlworker
Then add namespace:
using iTextSharp.tool.xml;
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=Panel.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
var example_html = @"<p>This is some sample text<span style="">!!!</span></p>";
StringReader sr = new StringReader(example_html);
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
var writer = PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();