2

我的要求是将 Html 转换为 pdf 转换器,我通过代码做到了这一点。但现在我的要求是如何保存到文件夹中。

 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();

请帮忙。

4

2 回答 2

1

用这个。

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();
于 2013-07-08T11:04:08.370 回答
1

你可以试试这个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();

除此之外,您使用的第三方工具或 PDF 生成也可能为您提供此操作的功能。

于 2013-07-08T08:06:50.047 回答