C# C.I.EthExelPb在一个新文档的中间注入图像

C# C.I.EthExelPb在一个新文档的中间注入图像,c#,html,pdf,itextsharp,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

我需要将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文件中的文本,该文件系统有许多搜索/替换。

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


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

为什么代码中有
sw
hw
?我没有看到你在任何地方使用
hw
。什么是sData?是XHTML吗?它是否有图像的占位符标签?它应该有一个占位符,然后每当遇到
标记时,您的
ImageProvider
应该返回图像。为什么不编写一个
ImageProvider
实现?你的问题提出了很多问题。在等待答案之前,您应该回答这些反问题。sData是.html,没有图像标记。我没有图像提供程序,因为图像是从图形对象生成的。如果没有图像标记,您应该添加一个。如果您没有任何占位符,您认为任何人如何知道在何处插入图像?另外:要么我不理解你不使用ImageProvider的理由,要么你不理解ImageProvider的用途。我假设是后者,因为使用ImageProvider是插入由图形对象生成的图像的唯一方法。我一定不理解ImageProvider的用途,我将进一步阅读文档以更好地理解它。目前,我可以使用
pdfDoc.Add(iTextSharp.text.image.GetInstance(bmp,BaseColor.BLACK))将图像附加到文档中