Есть ли в GWT richtextbox, который показывает данные типа RTF?
Я использую GWT Richtextbox, но этот виджет показывает значения в простом текстовом или HTML-формате. Есть ли способ показать данные RTF в виджете GWT-Richtext или GWT-htmlEditor? Или в других библиотеках GWT есть виджет, который будет это делать?
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();
}