【问题标题】:Unable to get image in my pdf created using itextsharp无法在使用 itextsharp 创建的 pdf 中获取图像
【发布时间】:2012-05-01 20:14:13
【问题描述】:

我没有得到 pdf 格式的图像,我只得到文本,请帮助我, 我正在使用来自http://sourceforge.net/projects/itextsharp/的iteshsharp 5.2.1

default.aspx.cs 的代码

Response.ContentType = "application/pdf";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
savetopdf.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();

default.aspx 的代码

<form id="form1" runat="server">
<div id="savetopdf" runat="server">
    <asp:Label ID="lbl" runat="server" Text=" Lorem Ipsum, Dolor"></asp:Label>
    <img src="http://localhost:5583/WebSite1/images/Penguins.jpg" alt="penguins" />
    <img src="http://localhost:5583/WebSite1/images/Tulips.jpg" alt="tulips" />
</div>
</form>

【问题讨论】:

    标签: asp.net pdf itextsharp


    【解决方案1】:

    HTMLWorker 有问题,已停止使用,取而代之的是 XMLWorker。

    http://sourceforge.net/projects/itextsharp/files/xmlworker/

    演示:

    http://demo.itextsupport.com/xmlworker/

    尽管文档中提到了 Java API,但对 C# 的改编应该很简单:

    http://demo.itextsupport.com/xmlworker/itextdoc/index.html

    【讨论】:

      【解决方案2】:

      试试这样:

      string ImagePath = Server.MapPath("/Images/Printbanner1.jpg");
      Document document = new Document();
      Response.ContentType = "application/pdf";
      Response.AddHeader("content-disposition", "attachment;filename=xxx.pdf");
      Response.Cache.SetCacheability(HttpCacheability.NoCache);
      document.Open();
      
      iTextSharp.text.html.simpleparser.StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet();
      iTextSharp.text.html.simpleparser.HTMLWorker hw = new iTextSharp.text.html.simpleparser.HTMLWorker(document);
      htmlTable = htmlTable.ToString().Replace("'", "\"");
      htmlTable = htmlTable.Replace("px", "");
      StringReader sr = new StringReader(htmlTable.ToString());
      Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
      HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
      PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
      
      pdfDoc.Open();
      iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(ImagePath);
      pdfDoc.Add(image);
      htmlparser.Parse(sr);
      
      pdfDoc.Close();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-16
        • 1970-01-01
        • 1970-01-01
        • 2011-08-22
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多