Выходное изображение со сборкой

Я использую MigraDoc и хотел бы вставить изображение в документ. Самый простой способ сделать это - указать путь к файлу изображения (а не указывать его в ресурсах). Поэтому я хотел бы включить изображение в файл вместе с другими файлами в сборке. Тогда MigraDoc может использовать изображение на основе относительного пути.

Но я понятия не имею, как это сделать или вообще возможно. Поэтому я могу сделать так, чтобы мой проект включал файл изображения вне ресурсов.

PS Я знаю, что есть обходной путь, когда вы включаете изображение в ресурсы, сохраняете его во временную папку, прежде чем MigraDoc будет использовать его. Это просто кажется более простым дизайном, если изображение всегда доступно.

PPS Существует обходной путь, чтобы заставить MigraDoc использовать изображения из ресурсов проекта (см. Принятый ответ).

1 ответ

Решение

Как показано на сайте MigraDoc, вы можете использовать изображения в качестве byte[] создавать файлы PDF. Это можно легко использовать с изображениями из ресурсов (как показано на сайте).

Вы просто конвертируете ресурс изображения в специальную строку и передаете эту строку, где MigraDoc ожидает имя файла.

static string MigraDocFilenameFromByteArray(byte[] image)
{
    return "base64:" +
           Convert.ToBase64String(image);
}

Ссылка на официальный сайт MigraDoc:
http://www.pdfsharp.net/wiki/MigraDoc_FilelessImages.ashx

И MigraDoc также может использовать изображения, которые хранятся в папке программы с вашими сборками. Вы можете использовать Assembly класс, чтобы узнать, где хранится ваша сборка, и найдите в этой папке изображения, которые должны быть там. Это не имеет ничего общего с MigraDoc, только некоторые основные функции.NET.

Другие вопросы по тегам