| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > RichTextBox и работа с текстом |
| Автор: NosfBlazE 30.7.2011, 22:01 |
| Здравствуйте. В обычном оконном приложении есть форма с RichTextBox, в котором введен какой-то форматированный текст, раскрашенный разными цветами. Можно ли как-нибудь обратиться к этому объекту и узнать каким именно цветом и шрифтом написана в нем конкретная буква? Что-то вроде RichTextBox.Rtf[i].<Получить стиль> . Надеюсь на вашу помощь. P.S. Зачем мне это надо? Хочу перевести весь текст в html представление с сохранением исходного форматирования. То есть расставить соответствующие теги и стили. |
| Автор: AlexNagits 30.7.2011, 22:24 | ||
| Могу предложить простой вариант. Но предупреждаю сразу, что он скорее всего будет работать медленно! Поочередно выделяя каждый символ в richTextBox, мы можем читать richTextBox.SelectionColor, SelectionFont и другие свойства.. Так мы сможем точно узнать форматирование каждого символа. Но при больших текстах, наверное, будет работать очень медленно.
Можно ускорить немного, ценой точности парсинга форматирования. Предварительно разбить текст на отдельные слова по символу ПРОБЕЛ richTextBox.Text.Split(" "). И в цикле считывать форматирование не посимвольно, а по словам. Самый правильный вариант, конечно, разбирать чистый rtf-код (теги). Но он и самый сложный, если вы не знакомы со спецификацией rtf. |
| Автор: AlexNagits 30.7.2011, 23:02 |
| Кстати, попробуйте погуглить по запросу rtf2html. Посмотрите http://sourceforge.net/projects/rtf2html/, может вам подойдет? Она консольная, из проги передаете ей команды и все, не нужно будет изобретать велосипед |
| Автор: NosfBlazE 31.7.2011, 13:33 |
| Действительно, Вы правы. Наверное, проще искать конвертер ртф2хтмл. Предложенный способ не подходит, во-первых, так как текст достаточно большого объема, во-вторых, он в процессе работы редактируется, а это будет сбивать индексы. =\ С ртф спецификацией, к сожалению, не знаком, в этом и вся сложность. Знаю, что там с помощью какой-то специфической разметки хранится информация о форматировании. Вот было бы здорово эту информацию как-то получать. |