MigraDoc 在应用程序目录中提供图像插入。例子:
Section section = document.AddSection();
section.AddImage("../../SomeImage.png");
当我在 .AddImage 参数中添加 http 图像路径时,它显示“找不到图像”。在 PDF 中。
有没有办法在 MigraDoc 生成的 PDF 中插入 http 图像?
不,您不能通过 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);
}