【问题标题】:EMF-formatted memory streams for iTextSharp Image.GetInstanceiTextSharp Image.GetInstance 的 EMF 格式的内存流
【发布时间】:2015-07-14 17:59:15
【问题描述】:

我正在使用 iTextSharp 将图像从我的网站流式传输到 PDF 文档中。具体来说,我使用的是 Image.GetInstance(stream) 方法,在下面的代码 sn-p 中加粗。此方法接受 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 格式的流?

谢谢。

【问题讨论】:

标签: c# itextsharp itext


【解决方案1】:

我遇到了同样的问题,用这段代码解决了。

var stream = imagePart.GetStream();

var image = Image.GetInstance(System.Drawing.Image.FromStream(stream),

System.Drawing.Imaging.ImageFormat.Png);

image.ScalePercent(45);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 2014-10-14
    • 2010-12-18
    相关资源
    最近更新 更多