【发布时间】: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