使用iTextSharp从包含图像的HTML页面生成PDF
本文关键字:PDF HTML iTextSharp 包含 图像 使用 | 更新日期: 2023-09-27 18:25:42
我使用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的解决方案。
您的代码看起来不错。图像的路径似乎有问题。尝试将其设置为图像的完全限定路径,它将适用于您。
此外,如果您正在从服务器端代码操作HTML
。然后我建议您使用Server.MapPath()
映射图像路径。它会很好用的。
使用
http://localhost:58095/Images/image1.png
以获取图像路径。希望它能帮助你。localhost:58095
是您的本地机器地址。