GWT是否有富文本框显示RTF类型数据?

时间:2011-01-18 10:19:04

标签: gwt richtextbox rtf html-editor rich-text-editor

我正在使用GWT Richtextbox,但此小部件显示的是简单文本或HTML格式的值。 有没有办法在GWT-Richtext或GWT-htmlEditor小部件中显示RTF数据?或者其他GWT库中是否有一个小部件可以执行此操作?

3 个答案:

答案 0 :(得分:1)

我不这么认为。大约一年前,我们想在客户端开发rtf浏览器,但我们失败了。 没有GWT-Rtf库。您可以尝试查找用javascript编写的内容然后用JSNI包装它,但我还没有看到这样的库。有人告诉我,有可能使用Activex,但我们甚至没有尝试过这种方法。

答案 1 :(得分:0)

你想要达到什么目的?如果要与RTF编辑器(例如Microsoft Word)共享文档,则应检查该编辑器是否也可以使用HTML。我知道MS Word可以编辑HTML。

或者,您可以考虑将RTF转换为HTML,然后再将其转换回服务器端。有几个Java库可以做到这一点,我相信Flying Saucer就是其中之一。

答案 2 :(得分:0)

您可以将RTFEditorKit与HTMLEditorKit结合使用,以在服务器端或applet之间进行转换。这样您就可以使用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();
}