【问题标题】:how to save pdf on server map path using iTextsharp如何使用 iTextsharp 在服务器地图路径上保存 pdf
【发布时间】:2015-09-13 17:14:22
【问题描述】:

我正在使用以下代码来生成 pdf,并且它工作完美:

  string strQuery = "select * from userdata";
        SqlCommand cmd = new SqlCommand(strQuery);
        DataTable dt = GetData(cmd);

        //Create a dummy GridView
        GridView GridView1 = new GridView();
        GridView1.AllowPaging = false;
        GridView1.DataSource = dt;
        GridView1.DataBind();

        Response.ContentType = "application/pdf";
        Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.pdf");
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        StringWriter sw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(sw);
        GridView1.RenderControl(hw);

        StringReader sr = new StringReader(sw.ToString());
        Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
        HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
        PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
        pdfDoc.Open();

        htmlparser.Parse(sr);
        pdfDoc.Close();

        Response.Write(pdfDoc);
        Response.End();  

效果很好。但我可以将此 pdf 保存到服务器地图路径上。

我在 pdfDoc.Close() 之后写在下面;

   String path  = Server.MapPath("~/mypdf.pdf");

但它不会将 pdf 保存到服务器地图路径。

我该怎么做?

【问题讨论】:

标签: c# asp.net pdf itextsharp


【解决方案1】:

您当前正在将文档写入以下输出流:Response.OutputStream

一旦您执行pdfDoc.Close();,PDF 字节就消失了。

如果要将PDF保存到服务器,则需要替换以下行:

PdfWriter.GetInstance(pdfDoc, Response.OutputStream);

用这一行:

PdfWriter.GetInstance(pdfDoc, new FileStream(context.Server.MapPath("~") + "mypdf.pdf");

现在您的字节不会发送到浏览器,但 PDF 将在您的服务器上创建。

【讨论】:

  • 这显示错误 - PdfWriter.GetInstance(pdfDoc, New FileStream(path); 它在New Filestream 上显示错误。
  • 是的,我已经用这个代码解决了:PdfWriter.GetInstance(pdfDoc, new FileStream(path, FileMode.Create));
  • 接受 :-) 谢谢 :-)
  • @Bruno Lowagie 你知道如何使用XMLWorkerHelper
猜你喜欢
  • 1970-01-01
  • 2014-12-23
  • 1970-01-01
  • 2014-01-05
  • 2015-08-11
  • 2016-11-18
  • 2021-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多