我想使用iTextSharp将包含图片和GridView的页面转换为PDF格式。以下是我的代码
string attachment = "attachment; filename=Report.pdf";
Response.ClearContent();
Response.AddHeader("content-disposition", attachment);
Response.ContentType = "application/pdf";
StringWriter stw = new StringWriter();
HtmlTextWriter htextw = new HtmlTextWriter(stw);
divText.RenderControl(htextw); //image is place inside
GridView1.RenderControl(htextw);
Document document = new Document();
PdfWriter.GetInstance(document, Response.OutputStream);
document.Open();
StringReader str = new StringReader(stw.ToString());
HTMLWorker htmlworker = new HTMLWorker(document);
htmlworker.Parse(str);
document.Close();
Response.Write(document);
Response.End();
我成功地将GridView转换为PDF,但无法转换图像。该图像位于名为divText的div内。有人能帮助我吗?
Response.Write(document);
这一行代码,该代码会在Document
对象上调用ToString()
方法,而该方法并未重写默认值,因此您实际上是将文本iTextSharp.text.Document
写入每个文件的末尾,最终可能导致PDF文件损坏。 - Chris Haasstw.ToString()
的缩写版本,因为HTMLWorker
只能处理 HTML,而不是 GridView,这才是最重要的。 - Chris Haas