【问题标题】:Write a GridView to a .pdf file将 GridView 写入 .pdf 文件
【发布时间】:2014-07-16 20:51:27
【问题描述】:

我正在尝试将 GridView、gv 写入 .pdf 文件。

pdfDoc 有问题。

    Response.ContentType = "application/pdf"
    Response.AddHeader("content-disposition", "attachment;filename=Export.pdf")
    Response.Cache.SetCacheability(HttpCacheability.NoCache)
    Dim sw As New StringWriter()
    Dim hw As New HtmlTextWriter(sw)
    Dim frm As New HtmlForm()
    gv.Parent.Controls.Add(frm)
    frm.Attributes("runat") = "server"
    frm.Controls.Add(gv)
    frm.RenderControl(hw)
    Dim sr As New StringReader(sw.ToString())
    Dim pdfDoc As New Document(PageSize.A4, 10.0F, 10.0F, 10.0F, 0.0F)
    Dim htmlparser As New HTMLWorker(pdfDoc)
    PdfWriter.GetInstance(pdfDoc, Response.OutputStream)
    pdfDoc.Open()
    htmlparser.Parse(sr)
    pdfDoc.Close()
    Response.Write(pdfDoc)
    Response.[End]()

【问题讨论】:

  • 这是个坏主意。相反,将自定义 HTML 写入 PDF,或使用原生 PDF 控件。原因很简单:GridView 的标记是为网页设计的,不会在 PDF 中清晰呈现。无论如何,如果您在导出它时遇到问题,请准确说出您的问题所在。不要只说“pdfDoc 有问题”。你有例外吗?它发生在哪一行?否则,输出与您的预期有何不同?
  • 浏览这些答案。我强烈建议将您的流程分为三个部分,将 HTML 呈现为字符串,将字符串解析为 PDF,将 PDF 发送给客户端。 stackoverflow.com/a/17171791/231316stackoverflow.com/a/21466653/231316stackoverflow.com/a/23703266/231316

标签: asp.net pdf gridview itextsharp


【解决方案1】:

为什么不遍历 Gridview 行或数据源项并创建一个 html 字符串?

【讨论】:

    猜你喜欢
    • 2016-04-19
    • 2012-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多