Самый простой способ - изменить код RTF, чтобы вставить картинку самостоятельно.
В RTF изображение определяется следующим образом:
'{' \ pict (brdr? & Shading? & Picttype & pictsize & metafileinfo?) Data '}'
Знак вопроса означает, что контрольное слово является необязательным.
«данные» - это просто содержимое файла в шестнадцатеричном формате. Если вы хотите использовать двоичный файл, используйте управляющее слово \ bin.
Например:
{\pict\pngblip\picw10449\pich3280\picwgoal5924\pichgoal1860 hex data}
{\pict\pngblip\picw10449\pich3280\picwgoal5924\pichgoal1860\bin binary data}
\ pict = запускает группу изображений,
\ pngblip = png picture
\ picwX = ширина изображения (X - значение в пикселях)
\ pichX = высота картинки
\ picwgoalX = требуемая ширина изображения в твипах
Итак, чтобы вставить изображение, вам просто нужно открыть его, преобразовать данные в шестнадцатеричное, загрузить эти данные в строку и добавить коды RTF вокруг него, чтобы определить изображение RTF. Теперь у вас есть отдельная строка с данными изображения, которую вы можете вставить в код RTF документа. Не забывайте закрывать "}"
Затем вы получаете код RTF из RichTextBox (rtbBox.Rtf), вставляете картинку в нужное место и устанавливаете код rtbBox.Rtf
Одна проблема, с которой вы можете столкнуться, заключается в том, что .NET RTB не очень хорошо поддерживает стандарт RTF.
Я только что сделал небольшое приложение *, которое позволяет вам быстро протестировать некоторый код RTF внутри RTB и посмотреть, как он обрабатывает его. Вы можете скачать это здесь:
RTB-тестер (http://your -translations.com / toys ).
Вы можете вставить некоторое содержимое RTF (например, из Word) в левое поле RTF и нажать «Показать коды RTF», чтобы отобразить коды RTF в правом окне RTF, или вставить код RTF в правом RTB и нажмите «Применить коды RTF», чтобы увидеть результаты слева.
Вы, конечно, можете редактировать коды по своему усмотрению, что делает его очень удобным для проверки того, поддерживает ли RichTextBox нужные вам команды или узнать, как использовать контрольные слова RTF.
Вы можете скачать полную спецификацию для RTF онлайн.
NB. Это всего лишь маленькая вещь, которую я собрал за 5 минут, поэтому я не реализовал открытие или сохранение файлов, перетаскивание и другие цивилизованные вещи.