Я использую PDFsharp в приложении MVC ASP.NET. Я хочу добавить изображение, но какой каталог я вставил его, это, может казаться, не находит его. У меня есть код как это, поскольку я пытаюсь скопировать пример приложения
Section section = document.AddSection();
Image image13 = section.AddImage("../../images/logo.png");
Какой каталог я вставил это изображение, когда PDF сгенерирован, я вижу ошибку на PDF, говоря "Изображение, не найденное"
Кто-либо еще видел эту проблему?
Возможно, он ищет полный путь?
Попробуйте
Image image13 = section.AddImage(Server.MapPath("~/images/logo.png"));
Я использую pdfsharp в приложении asp.net mvc.
Кстати: вы не используете PDFsharp, вы используете MigraDoc.
MigraDoc ищет изображения относительно текущего каталога. Страницы ASPX компилируются и выполняются из временного каталога, а не из каталога проекта. Следовательно, относительные пути не будут работать должным образом.
Assembly.CodeBase может помочь найти изображения; Assembly.Location указывает временный каталог.
Assembly.CodeBase может использоваться в коде, который используется совместно ASP.NET и .NET. Также можно использовать Server.MapPath (как было предложено Марко), но он работает только в ASP.NET.
Объект MigraDoc Document имеет свойство ImagePath, которое позволяет вам указать каталоги, в которых будет производиться поиск изображений (разделяйте несколько каталогов с помощью полуколонки).
Если изображения могут быть найдены относительно местоположения сборки, то для определения местоположения сборки можно использовать Assembly.CodeBase (как упоминалось в моем предыдущем ответе).