2013-08-29 21 views
3

MigraDoc在应用程序目录中提供插入图像。 实施例:在MigraDoc表中插入“http”图片

Section section = document.AddSection();  
section.AddImage("../../SomeImage.png"); 

当我在.AddImage参数添加http图像路径它显示“图像未找到”。在PDF中。

有什么办法可以在MigraDoc生成的PDF中插入http图像吗?

回答

4

不,您不能通过HTTP参考插入图像。

将图像下载到本地文件夹并将此本地副本添加到MigraDoc文档。

使用PDFsharp时,不需要本地文件;一个Image对象可以用来代替。对于XImage.FromURI

代码可以在这里找到(对于PDFsharp):
http://forum.pdfsharp.de/viewtopic.php?p=4851&sid=4898a4ff0b0437cfdbb80bc48bdfed36#p4851

代码,允许MigraDoc不要使用动态影像(没有临时本地文件需要)可以在这里找到:
http://forum.pdfsharp.de/viewtopic.php?p=4123&sid=4898a4ff0b0437cfdbb80bc48bdfed36#p4123

更新:
使用PDFsharp 1.50 beta 2及更高版本,可轻松添加内存中的图像(byte []等)。如果你只有一个HTTP引用,你仍然需要自己下载图片。但您不再需要临时文件或修补的MigraDoc版本。
More information on the MigraDoc site

诀窍很简单:你的图像转换为一个字符串,并通过作为与“BASE64:”文件名前缀。

static string MigraDocFilenameFromByteArray(byte[] image) 
{ 
    return "base64:" + 
      Convert.ToBase64String(image); 
}