Ответ 1
Нет, MigraDoc не допускает этого. Существует хак, но он работает, только если вы используете ASP.NET, и вы не используете предварительный просмотр документа. Смотрите эти темы на официальном форуме, которые подробно объясняют проблему:
- http://forum.pdfsharp.net/viewtopic.php?f=2&t=1398
- http://forum.pdfsharp.net/viewtopic.php?f=2&t=1292
Вы можете использовать встроенные ресурсы с помощью обходного пути, то есть сохранять их временно и удалять их с помощью метода dispose и деструктора после того, как вы закончите. Пример:
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.UriSource = new Uri("pack://application:,,/Resources/temp.png");
bi.EndInit();
PngBitmapEncoder pbe = new PngBitmapEncoder();
pbe.Frames.Add(BitmapFrame.Create(bi));
using (FileStream fs = new FileStream("temp.png", FileMode.Create))
{
pbe.Save(fs);
}
Затем вы можете использовать его с помощью MigraDocObject.AddImage("temp.png");
. Но обязательно удалите изображение или добавьте проверку, если изображение уже существует, и если он имеет правильный размер файла (в случае его замены пользователем).