【发布时间】:2013-10-23 21:09:59
【问题描述】:
我正在使用 itextsharp dll 以 PDF 格式打印网页。我的 html 文件中有一个 <img src="Images/flower.jpg" />。当我没有图像时,下面的按钮单击事件将呈现 PDF。使用图像,我得到了这个错误:
找不到路径“C:\Program Files (x86)\Common”的一部分 Files\Microsoft Shared\DevServer\10.0\Images\flower.jpg'
这是我的代码:
protected void Button1_Click(object sender, EventArgs e)
{
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();
}
【问题讨论】:
-
我有一个
-
在您的 HTML 中,您需要提供图像的绝对路径,因为相对路径意味着相对于当前工作目录,即您在弹出错误时看到的路径。
-
那行得通。谢谢。这意味着一旦路径移动到生产服务器,我就必须更新它。
-
是的,如果您可以通过代码访问图像 url,请参阅我的答案以获得可能更好的替代方案。不要忘记投票并接受:)