【发布时间】:2013-10-23 08:09:40
【问题描述】:
我正在尝试将我的网页转换为 pdf,我看到了这段代码:
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=TestPage.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
this.Page.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
我不确定这里的每一行是做什么的,但我在一个新站点上使用它并且它有效,当我尝试在我的项目中使用它时出现错误,这是给出错误的行: htmlparser.Parse(sr);
这是错误: 找不到路径“C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\pic\1.jpg”的一部分
我 pic\1.jpg 在我的项目中,所以我将它添加到该路径中(我不知道这是否是我需要做的),但它给了我另一个错误: 字体太小:0
我在解决问题吗?我需要做什么来修复它?
【问题讨论】:
-
这是 iTextSharp。首先,
HTMLWorker已经被弃用了很长时间,并且不支持 CSS。请改用XMLWorker。见stackoverflow.com/q/9611535/231316 和stackoverflow.com/a/15362705/231316
标签: c# asp.net pdf pdf-generation itextsharp