Как сохранить форматированный текст из веб-приложения и отобразить его в поле форматированного текста - PullRequest
1 голос
/ 03 июня 2009

Сейчас я работаю над приложением с коллегой - она ​​пишет веб-форму, которая позволяет пользователям вводить текст и управлять им, который будет сохранен в базе данных и затем отображен в настольном приложении.

Я использую Rich Text Box для отображения текста из базы данных. Мы хотим позволить пользователям использовать базовое форматирование (жирный, курсив, подчеркивание) в веб-приложении, а затем отображать это форматирование в настольном приложении.

Мне интересно, есть ли тег или что-то, что можно ввести в веб-форму (например, или [b] и т. Д.), Которая будет автоматически отображать форматирование в RTB.

Если это невозможно, что будет лучшим способом для достижения этой функциональности?

Я использую форму C # windows для настольного приложения.

Обновление: Веб-форма на PHP.

Ответы [ 5 ]

1 голос
/ 09 июня 2009

Я играл с этим несколько лет назад - в основном у меня был текст в базе данных, который я размечал, чтобы подчеркнуть некоторые слова. Я разметил это в хранимой процедуре, а затем перевел это в RTF на стороне клиента.

Я попытался изучить спецификацию RTF, но довольно сложно просто прочитать спецификацию и узнать, что делать.

Я предлагаю открыть WordPad (Пуск -> Выполнить ... -> WordPad), и возиться с различными стилями шрифтов и тому подобное. Затем сохраните его как документ RTF где-нибудь. Откройте этот документ в текстовом редакторе по вашему выбору (я использую Notepad ++ ), и это поможет вам намного легче определить RTF.

Вот пример простого RTF-документа, который я создал:

{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
{\colortbl ;\red0\green0\blue255;}
{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\f0\fs20 Hello World.\par
\b This text is bold.\b0\par
\i This text is italicized.\i0\par
\cf1 This text is blue.\cf0\par
}

Некоторые из этих тегов - просто дополнительная разметка, без которой вы, вероятно, можете обойтись. Поиграй с ним и посмотри.

В конце концов вы должны быть в состоянии сделать что-то вроде:

string rtf = GetMarkupTextFromServer();
rtf = rtf.Replace("[b]", @"\b");
rtf = rtf.Replace("[/b]", @"\b0");
rtf = rtf.Replace("[i]", @"\i");
rtf = rtf.Replace("[/i]", @"\i0");
    ...
mRichTextBox.Rtf  = rtf;
1 голос
/ 03 июня 2009

Как упомянуто BFree , лучшее, что вы собираетесь сделать в веб-среде, - это редактор Rich Text HTML. К счастью для вас, существует множество бесплатных редакторов . Если вы храните информацию в виде HTML в базе данных и решаете использовать ее повторно в WebForm, вы застряли с элементом управления Web Browser. Однако вы можете преобразовать эту информацию назад и вперед между HTML и RTF с помощью библиотеки.

К сожалению, после некоторых поисков я не смог найти ничего, за что не нужно платить. Возможно, вы сможете использовать MS Word в качестве источника данных для программного преобразования, но это может плохо масштабироваться.

1 голос
/ 03 июня 2009

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

Вы можете одинаково выглядеть и чувствовать себя в обеих средах. Если вам нужна помощь в использовании редактора в веб-форме, ответьте на это сообщение.

НТН

1 голос
/ 03 июня 2009

Если пользователь не сможет редактировать данные на стороне Windows, а только на веб-странице, вы можете сохранить исходный код HTML в БД и отобразить его в элементе управления Webbrowser в своем приложении Windows ...

0 голосов
/ 21 октября 2014

Создайте папку с именем temp и затем используйте этот код

frmEditPro.RichTextBox1.SaveFile("C:\temp\Doc1.rtf", _RichTextBoxStreamType.RichText)
...