3

MigraDoc 在应用程序目录中提供图像插入。例子:

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

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

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

4

1 回答 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);
}
于 2013-08-29T21:01:34.860 回答