我正在使用PDFsharp在PDF上插入图片。图像作为数据库中的二进制对象出现。要使用PDFsharp插入它,我需要将它作为XImage。这是我到目前为止所做的:
XImage sealXImage;
using (var ms = new MemoryStream(seal.SealerImage))
// seal.SealerImage is the byte[], I verified this does actually have data in it
{
Image sealImage = Image.FromStream(ms);
sealXImage = XImage.FromGdiPlusImage(sealImage);
}
XGraphics gfx = XGraphics.FromPdfPage(pdfToSeal.Pages[pageNumber]);
gfx.DrawImage(sealXImage, 425, 475, 150, 100); // generic GDI+ error on this line
因此它可以快速地工作,直到抛出GDI +错误的最后一行:
System.Runtime.InteropServices.ExternalException:GDI +中发生一般错误。
我做错了什么,我该怎么做才能解决这个问题?提前谢谢。
答案 0 :(得分:3)
我怀疑问题是using
:当你致电DrawImage()
时,MemoryStream不再存在。如果我是正确的,在using
块内调用DrawImage可以解决问题。
您也可以调用XImage.FromStream()
,但如果您不更改using
范围,我认为您会遇到同样的问题。