c#iTextHelper在新文档中间注入图像

时间:2015-12-02 17:18:56

标签: c# html pdf itextsharp

我需要将html写入pdf文档并在文档中间注入生成的.png。我无法使用iTextSharp找到一种方法。

总的.pdf大约是4页没有图像,图像应该在标题后的第一页上。

我当前的代码看起来像

 public void generatePDF(string sData, Bitmap bmp) //sData is html
 {
        Response.ContentType = "application/pdf";
        Response.AddHeader("content-disposition", "inline;filename=summary.pdf");
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        var sr = new StringReader(sData); 
        using (Document pdfDoc = new Document())
        {
            PdfWriter writer = PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
            pdfDoc.Open();
            pdfDoc.Add(iTextSharp.text.Image.GetInstance(bmp, BaseColor.BLACK));

            XMLWorkerHelper.GetInstance().ParseXHtml(
              writer, pdfDoc, sr
            );

            Response.Write(pdfDoc);
        }

        Response.End();
 }

我正在将图像写入文本之前的.pdf,因此它被推到顶部,但理想情况下我想用图像替换一些占位符文本。

编辑:

sData是从文件系统读取的.html文件中的文本,然后有大量搜索/替换。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,它并不像我希望的那样优雅。

基本上,我将html文档拆分为一个字符串数组,用于包含图像占位符段的重要段。然后,我在将数组添加到.pdf时检查占位符文本,并将其替换为图像。