在MigraDoc表格中插入"http"图像。

3

MigraDoc可以在应用程序目录中插入图像。示例:

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

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

是否有办法在MigraDoc生成的PDF中插入http图像?

1个回答

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版本。
有关MigraDoc网站的更多信息
诀窍很简单:将图像转换为字符串,并将其作为带有“base64:”前缀的文件名传递。
static string MigraDocFilenameFromByteArray(byte[] image)
{
    return "base64:" +
           Convert.ToBase64String(image);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接