【问题标题】:Does GWT have richtextbox which show RTF type data?GWT 是否有显示 RTF 类型数据的richtextbox?
【发布时间】:2011-01-18 10:19:03
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我在数据库中有 RTF 数据,我将在 Internet 浏览器中显示它,用户将对其进行编辑。所以我将 RTF 转换为 HTML 并使用它。但是当使用 HTML 时,在 EDITOR 中会忽略多个空格。因此文本格式丢失,用户在保存之前看不到输入的内容。
      • 也许只是在编辑器中用不间断空格(en.wikipedia.org/wiki/Non-breaking_space)替换普通空格的问题。您可以即时执行此操作,使用 KeyDownHandler (google-web-toolkit.googlecode.com/svn/javadoc/2.1/com/google/…) 拦截按键
      • 谢谢,但问题不是这个。用户输入时没有问题,当存储的数据从数据库中获取并放入编辑器时出现问题。
      【解决方案3】:

      您可以结合使用 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();
      }
      

      【讨论】:

      • 感谢您的回复,但是这个方法的问题是多个空格。 GWT 的富文本编辑器会忽略多个空格。
      • 把它们改成  在 html 中。
      • 这看起来并不容易,将方法更改

        替换为

        ,这是不可接受的。需要智能替换方法。

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-10
      • 1970-01-01
      • 2012-08-08
      • 1970-01-01
      • 2020-05-10
      • 2016-02-07
      • 1970-01-01
      相关资源
      最近更新 更多