【发布时间】:2016-04-24 11:46:49
【问题描述】:
我想使用 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,但无法转换图像。图像放置在 div 调用 divText 内。有谁可以帮助我吗?
【问题讨论】:
-
图片是如何引用的? Base64 网址?相对网址?绝对网址?
-
不相关但删除
Response.Write(document);行,它在Document对象上调用ToString(),它不会覆盖默认值,因此您实际上是将文本iTextSharp.text.Document写入每个末尾文件并最终以损坏的 PDF 告终。 -
回到问题,我们需要查看
stw.ToString()的缩写版本,因为HTMLWorker仅适用于HTML,不适用于GridViews,这才是最重要的。
标签: c# pdf itextsharp