3

我使用 iTextSharp.dll 创建 pdf。但这仅适用于文本 HTML 内容。如果我在页面上使用图像,则会引发找不到图像的异常。

我的设计文件

<asp:Panel ID="pdfPannel" runat="server">
 
      Sample Text
<img src="../Images/image1.png"/>


</asp:Panel>

<asp:Button ID="btnSave" runat="server" Text="Save As PDF" onclick="btnSave_Click" />

我的方法:

protected void btnSave_Click(object sender, EventArgs e)
{

Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=print.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
pdfPannel.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();

}

当我单击该保存按钮时,出现以下错误

找不到路径“C:\Program Files\Common Files\Microsoft Shared\DevServer\Images\image1.png”的一部分。

请告诉我是否有任何替代解决方案来创建 pdf。

4

2 回答 2

1

你的代码看起来不错。问题似乎与图像的路径有关。尝试将其设置为图像的完全限定路径,它会为您工作。

此外,如果您HTML从服务器端代码进行操作。然后我会建议你使用Server.MapPath(). 它会正常工作。

于 2013-08-01T07:32:25.143 回答
0

利用

http://localhost:58095/Images/image1.png 

获取图像路径。希望它会帮助你。localhost:58095是您的本地计算机地址。

于 2015-02-24T10:54:13.890 回答