Я использую GWT Richtextbox, но этот виджет показывает значения, которые простой текст или формат HTML. Есть ли способ показать данные RTF в виджете GWT-Richtext или GWT-htmlEditor? Или в других библиотеках GWT есть виджет, который это сделает?
Есть ли в GWT форматированный текст, отображающий данные типа RTF?
Ответы (3)
Я так не думаю. Около года назад мы хотели разработать rtf-браузер на стороне клиента, но у нас ничего не вышло. Библиотеки GWT-Rtf отсутствуют. Можно попробовать найти что-то написанное на javascript, а затем обернуть это JSNI, но такой библиотеки я тоже не встречал. Кто-то сказал мне, что это возможно с Activex, но мы даже не пробовали этот метод.
Чего вы пытаетесь достичь? Если вы хотите обмениваться документами с помощью редактора RTF, например, Microsoft Word, вам следует проверить, может ли этот редактор также работать с HTML. Я знаю, что MS Word может редактировать HTML.
В качестве альтернативы вы можете подумать о переносе RTF в HTML и обратно на стороне сервера. Для этого существует несколько библиотек Java, и я считаю, что Flying Saucer один из них.
Вы можете использовать RTFEditorKit в сочетании с HTMLEditorKit для преобразования между двумя серверами или в апплете. Таким образом, вы можете использовать редактор форматированного текста GWT и выводить или вводить RTF.
public static String getHtmlFromRtf(InputStream fi){
Writer sOut = new StringWriter();
DefaultStyledDocument doc = new DefaultStyledDocument();
HTMLEditorKit htmlKit = new HTMLEditorKit();
RTFEditorKit rtf = new RTFEditorKit();
try
{
rtf.read( fi, doc, 0 );
htmlKit.write(sOut, doc, 0, doc.getLength());
}
catch (IOException e)
{
e.printStackTrace();
}
catch (BadLocationException e)
{
e.printStackTrace();
}
return sOut.toString();
}