Маленькие прописные/множественные шрифты и выделение жирным шрифтом с использованием DrawString в GDI+.
-
05-07-2019 - |
Вопрос
Я хочу написать текст, используя малая капитализация в сочетании с разными шрифтами для разных слов.
Чтобы уточнить, мне может понадобиться сообщение «Добро пожаловать на наш новый веб-сайт», которое генерируется в файл PNG для заголовка страницы.
- Текст будет малая капитализация - все пишется с большой буквы, но буквы «W», «N» и «W» немного крупнее.
- Шрифт «Нового веб-сайта» будет отличаться от остального текста.
Есть ли способ сделать это, не делая это полностью вручную?
Концептуально я хочу сделать что-то подобное:
graphics.DrawString("<font size=2>W</font>ELCOME TO OUR <b><font size=2>N</font>" +
"EW <font size=2>W</font>EBSITE</b>");
Лучший подход, который я смог найти на данный момент здесь, но я боюсь, что приложу все усилия, чтобы сделать это вручную, и в итоге получу ужасный результат. кернинг или трекинг проблемы.
Редактировать: Я должен был упомянуть, что это делается в ASP.NET, поэтому он должен быть быстрым и максимально экономичным.Я хочу, чтобы это было автоматизировано, чтобы я мог легко локализовать и не создавать тонны маленьких изображений.
Решение
Кажется, вам действительно следует использовать здесь RichTextBox...существует метод извлечения растрового изображения из RichTextBox, которое затем можно визуализировать как растровое изображение в графическом контексте.Конечно, здесь вам нужно будет выполнить вызов Managed C++, и я не знаю, сможете ли вы сделать это в своем проекте.
В противном случае, я думаю, вам придется делать это вручную с помощью DrawString и MeasureString, а это очень сложно.