emf格式的内存流为iTextSharp图像

本文关键字:iTextSharp 图像 内存 格式 emf | 更新日期: 2023-09-27 18:02:35

我正在使用iTextSharp从我的网站流图像到PDF文档。具体来说,我使用的是Image.GetInstance(流)方法,它包含在下面的代码片段中。该方法接受PNG内存流并将其添加到PDF文档中而不会出错,但似乎不接受EMF内存流。当我使用EMF内存流执行下面的代码时,我得到了以下异常:"字节数组不是可识别的图像格式。"

下面是我的c#代码:
using iTextSharp.text;
using iTextSharp.text.pdf;
using IMG = iTextSharp.text.Image;
...
ImageType imgType = ImageType.EMF; //ImageType.PNG; 
using (System.IO.MemoryStream ms = gm.CreateImageStream(null, imgType))
    {
        ms.Position = 0;
        IMG emf = IMG.GetInstance(ms);
        doc1.Add(emf);
    }

我是否需要以某种方式修改内存流,以便通过GetInstance方法成功获得EMF格式的流?

谢谢。

emf格式的内存流为iTextSharp图像

我也遇到了同样的问题,用下面的代码解决了这个问题。

var stream = imagePart.GetStream();
var image = Image.GetInstance(System.Drawing.Image.FromStream(stream),
System.Drawing.Imaging.ImageFormat.Png);
image.ScalePercent(45);