Есть ли в 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();
}
Другие вопросы по тегам