我正在使用iTextSharp将我网站上的图像流式传输到PDF文档中。具体来说,我使用Image.GetInstance(stream)方法,在下面的代码片段中加粗。此方法接受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格式的流?
谢谢。
答案 0 :(得分:0)
我遇到了同样的问题并用这段代码解决了。
var stream = imagePart.GetStream();
var image = Image.GetInstance(System.Drawing.Image.FromStream(stream),
System.Drawing.Imaging.ImageFormat.Png);
image.ScalePercent(45);