【发布时间】:2017-09-14 05:22:45
【问题描述】:
我尝试以 PDF 格式导出数据,所以当我导出时......这里我不从 gridview 导出数据,但实际上在这里我在代码中创建虚拟 gridview 并在该网格中绑定数据..我没有显示数据页面中的网格..我尝试下面的代码
Private Sub ExportGridToPDF()
Using myMemoryStream As New MemoryStream()
Dim myDocument As New iTextSharp.text.Document(iTextSharp.text.PageSize.A1, 10.0F, 10.0F, 10.0F, 0.0F)
' Dim myDocument As New iTextSharp.text.Document()
Dim myPDFWriter As PdfWriter = PdfWriter.GetInstance(myDocument, myMemoryStream)
myDocument.Open()
' Add to content to your PDF here...
Dim sw As New StringWriter()
Dim hw As New HtmlTextWriter(sw)
GridView1.AllowPaging = False
GridView1.DataBind()
GridView1.RenderControl(hw)
' We're done adding stuff to our PDF.
myDocument.Add(hw)
myDocument.Close()
Dim content As Byte() = myMemoryStream.ToArray()
' Write out PDF from memory stream.
Using fs As FileStream = File.Create("eport_PDF.pdf")
fs.Write(content, 0, CInt(content.Length))
End Using
End Using
End Sub
当我运行时显示错误
System.InvalidCastException:无法将“System.Web.UI.HtmlTextWriter”类型的对象转换为“iTextSharp.text.IElement”类型。
在这条线上 myDocument.Add(hw)
我使用内存流,因为当我使用没有内存流的代码时,我使用内存流,然后显示错误 Out of Memory 异常,所以我使用内存流,现在显示不同的错误
【问题讨论】:
-
我已经更新了我的答案。如果你是一个认真的开发者,你会停止使用 iTextSharp 这个词,你会升级到 iText 7,你会从教程中学习而不是重新发明轮子。
标签: vb.net pdf itext export-to-pdf