Как преобразовать текст в формате RTF в изображение? - PullRequest
3 голосов
/ 15 октября 2011

У меня есть приложение для Windows (C #) для редактирования изображений, и среди других функций я могу вставить из буфера обмена изображения или текст.Когда в буфере обмена содержится текст, он преобразует его в изображение (GDI +) со стилем шрифта по умолчанию, чем при вставке изображения.Я хочу иметь возможность преобразовывать некоторый текст в формате RTF из буфера обмена (например, скопированный из отформатированного исходного кода из VS20xx) в изображение, чтобы сделать то же самое, но сохранение шрифтов, цветов (содержащихся в таблицах и изображениях также было бы неплохо!)Я могу распознать содержимое буфера обмена как текст в формате RTF, но у меня нет способа отобразить его как изображение!Мне нужно делать все это в памяти без устройств печати и сброса файлов на диск.

1 Ответ

1 голос
/ 01 июля 2014

Вроде хак, но я давно сделал нечто похожее на это.

01) Сначала создайте пользовательский элемент управления, унаследованный от расширенного текстового поля.

02) Создание растрового изображения (буфер) с общим размером расширенного текстового поля.(Мы собираемся использовать это как буфер)

03) Переопределить OnPaint (PaintEventArgs e)

04) Вызов richtextbox.DrawToBitmap (buffer, Rect (0,0, buffer).Size.Width, buffer.Size.Height));Он будет работать, но не будет отображаться в intellisense.

05) При отправке команды буфера обмена в richtextbox, он должен перерисоваться в буфер.

06) Захватить буфер изображенияи делайте как хотите.

Чтобы убедиться, что команда OnPaint получает вызов, обратитесь к этому сообщению Правильное переопределение OnPaint (Rich Textbox)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...