Search code examples
c#pdfmigradoc

How can I add stream (file less) image in PDF using MigraDoc?


When I use the following code, it shows no image in PDF.
Here is my code

    private static void RenderHtmlToImage(string html, Paragraph paragraph, int pageCnt)
    {
        System.Drawing.Image image = HtmlRender.RenderToImageGdiPlus(html);
        //var tempImagefile = tempImagePath + "\\tempImage_" + pageCnt + ".png";
        //image.Save(tempImagefile, ImageFormat.Png);
        //paragraph.AddImage(tempImagefile);

        byte[] imageArray = imageToByteArray(image);
        string imageFilename = "base64:" + Convert.ToBase64String(imageArray);
        paragraph.AddImage(imageFilename);
    }

    public static byte[] imageToByteArray(System.Drawing.Image imageIn)
    {
        MemoryStream ms = new MemoryStream();
        imageIn.Save(ms, ImageFormat.Png);
        return ms.ToArray();
    }

It works perfectly fine when I save the image in the local folder.
I have followed this link as well http://www.pdfsharp.net/wiki/MigraDoc_FilelessImages.ashx but it doesn't work for me.


Solution

  • The code from the linked site works fine.

    Make sure you are using the latest version (1.50 RC2 as of now). Versions 1.32 or later do not support file-less images.