Abhishek
Abhishek

Reputation: 377

Html to pdf converter

My requirement is to convert the Html to pdf converter, I did this through code. but now my requirement is how can I save into folder.

 Response.ContentType = "application/pdf";
 Response.AddHeader("content-disposition", 
 "attachment;filename=Certificate.pdf");
 Response.Cache.SetCacheability(HttpCacheability.NoCache);
 System.Text.StringBuilder ss = new System.Text.StringBuilder(CertificateHtml);
 StringWriter sw = new StringWriter(ss);
 HtmlTextWriter hw = new HtmlTextWriter(sw);
 StringReader sr = new StringReader(sw.ToString());
 Document pdfDoc = new Document(PageSize.A2, 7f, 7f, 7f, 0f);
 HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
 PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
 pdfDoc.Open();
 htmlparser.Parse(sr);
 pdfDoc.Close();
 Response.Write(pdfDoc);
 Response.End();

Please help.

Upvotes: 2

Views: 1137

Answers (2)

Manish Sharma
Manish Sharma

Reputation: 2426

use this.

string fileName = DateTime.Now.Ticks.ToString();
string filepath = Server.MapPath("~") + fileName + ".pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.ContentType = "application/pdf";
Response.TransmitFile(filepath);
Response.End();

Upvotes: 1

yogi
yogi

Reputation: 19619

You may try this after Response.Write(pdfDoc);

Response.Write(pdfDoc);

FileStream fs = new FileStream(Server.MapPath("~/pdfFolder/pdfFile.pdf"), FileMode.Create);
StreamReader sr = new StreamReader(Response.OutputStream);
byte[] data = new byte[Response.OutputStream.Length];
Response.OutputStream.Read(data, 0, data.Length);
fs.Write(data, 0, data.Length);

fs.Flush();
fs.Close();

Other than this the third party tool you are using or PDF generation may too be providing you features for this operation.

Upvotes: 1

Related Questions