【问题标题】:WYSIWYG text editor in Java [closed]Java中的所见即所得文本编辑器[关闭]
【发布时间】:2009-05-12 14:26:27
【问题描述】:

我想在这里收集所有用于 Java 的 WYSIWYG 文本编辑器。

一些条目规则:

  • 必须有项目/产品的链接
  • 您必须说明它是开源的还是商业的
  • 是否可以扩展编辑器(添加新功能,如“以紫色为中心的数独”)?是简单还是复杂?
  • 它是否具有很多功能(花哨的字符和段落样式以及在同一文档中对多种语言进行在线拼写检查)还是只有基本功能(粗体、斜体、无下划线)?
  • 列出重要的依赖项(它是否在带有 Swing 的裸 Java 上运行?SWT?MacOS?)
  • 您的个人意见

此列表应有助于开发人员确定选择哪个编辑器。我不是在寻找“最好的”,而是在寻找“那里有什么”。

【问题讨论】:

  • 你在编辑什么? HTML?二进制?
  • 我对文件格式没有任何偏好。使用强大的编辑器,应该可以编写转换器以读取/写入任意格式。

标签: java editor wysiwyg


【解决方案1】:

RSyntaxTextArea

我用过这个组件,效果很好。它是 LGPL,它基于 javax.swing.text 包 (javax.swing.text.EditorKit)。 由于它是一个 Swing 组件,它可以通过几行代码集成到您的应用程序中:

RSyntaxTextArea textArea = new RSyntaxTextArea();
textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA);
RTextScrollPane sp = new RTextScrollPane(textArea);

【讨论】:

  • 代码是否易于扩展或充满私有/最终/静态?拼写检查怎么样?您是否尝试添加自己的格式规则?
  • 由于它是基于 javax.swing.text.EditorKit 的,它非常灵活(需要一些时间来使用它,但是一旦你掌握它就很容易了)。我有自己的 EditorKit,但 RSyntaxTextArea 更好,更好。代码看起来写得很好,它使用 JFlex 来标记文本,所以你需要编写自己的 flex 文件来添加一个新的语法高亮器。去年年底添加了一个代码完成插件库,我想是可以毫不费力地添加拼写检查器。你可以要求作者添加类似的东西,因为他更适应代码。
  • @adrian.tarau 这很难使用并且文档已经过时了。有其他选择吗?
  • @gekkostate 它并不完美,但它可以完成它的工作。 “这很难处理”是什么意思?扩展库还是使用它?有code.google.com/p/jsyntaxpane,但是我没用过。
  • @adrian.tarau 更具体。该库没有 .jar。所以你必须手动添加它然后使用它或者制作项目然后自己制作.jar。文档和教程不是很好,因为提供的源代码不一致。
【解决方案2】:

JWebEngine

我推荐JWebEngine。它是我所知道的唯一通过 ACID1 浏览器测试和 mail-acid 测试的。大多数其他 Java HTML 编辑器都基于 javax.swing.text.html.HTMLDocument 并且具有所有相同的错误。 HTMLDocument 对 CSS 的支持很差。 JWebEngine 对使用 CSS 查看 HTML 有很好的支持。

  • Link to the website。还有在线示例。
  • 商业许可
  • 扩展非常简单。供应商将它用于许多不同的东西,如编辑器、HTML 打印引擎、显示自定义占位符等。类的可见性没有问题,如 Sun HTMDocument。
  • 它基于 javax.swing.text.JEditorPane 或 javax.swing.text.JTextPane,您可以将其与拼写检查器 JOrtho 等第三方工具一起使用。
  • 它是纯 Java,可在 Java SE 5 或更高版本的所有平台上运行。它还可以在未签名的小程序中运行。

【讨论】:

  • 查看在线商店inetsoftware.de/store
  • 目前“商业”的许可费是 1950 美元...所以.. 用这些信息做你想做的事... JWebEngine 看起来很棒...但成本可能是大多数人的问题...(不是 OSS/库)
【解决方案3】:

OpenOffice的作者

可以使用OOoBean 嵌入Java。原始代码在 Swing 下运行,但您也可以使用 AWT/SWT 桥 (example code) 使其在 SWT 下运行。

该项目是开源的 (LGPL)。代码取决于操作系统,但有适用于所有主要操作系统的版本(项目网站支持 Windows、Linux、MacOS 和 Solaris,但您也可以下载源代码并为其他人编译)。

由于底层产品是一个成熟的办公应用程序,它提供了您可能想要的所有功能(花哨的样式、不同语言的在线拼写检查、嵌入图片、在图片周围流动文字,等等)。

缺点是您必须安装 OpenOffice;事实上,编辑器不是 Java 的一部分,但它是一个远程进程,只呈现在 Java 应用程序的窗口中。这意味着启动时间非常明显,性能可能会很慢。处理有时也很“奇怪”。需要一些配置来消除额外的边框和不需要的文档分页。

因此,编辑器不能真正从 Java 扩展。您要么必须用 C++ 编写代码,要么使用 OOo 自己的内置语言。您可以做的是您可以在文档中注册侦听器,并且您可以完全访问文档的底层模型。通过这种方式,您可以深入了解重要部分并修改行为,但这通常感觉像是在进行锁孔手术。

我的结论:如果 OO 有你需要的功能,这可能是获得你需要的最简单的方法。如果您需要大量自定义,您将与框架的默认设置进行上游战斗。

【讨论】:

  • 以这里为例:)
【解决方案4】:

我的应用程序需要同样的东西,我做了一项研究,发现了另外两个产品 EKitMetaphase Editor,基于 Charles Bell 的 HTMLDocumentEditor,它们都在 LGPL 许可下并且看起来不错。

但我没有测试它们。这些天,我们将看到我们的选择。

【讨论】:

  • 所以我已经测试了这两种产品,虽然它们都很轻巧且易于集成,但它们都有问题并且有奇怪的行为。
【解决方案5】:

Simply HTML

  • 它的 GPL 版本
  • 不知道扩展它有多容易
  • 不支持拼写检查,但有表格、列表。
  • 基于 Swing,需要 Java 1.4 和可选的 Java Help
  • 我没有将它用作程序员 - 就​​像最终用户一样,它有一些怪癖 - 例如没有多级列表或表格,虽然不够好但还可以。
  • 此外,它还为您提供 HTML,因此很容易将处理结果嵌入到其他组件中。
  • 现在SourceForge

【讨论】:

  • 产品好像停产了
  • 简单的 HTML 现在在这里:sites.google.com/site/uhilger/software/simplyhtml 点击底部附近的“herunterladen”以获取 zip 文件。
  • 最新版本是2003年的。我认为这个项目已经停止了。
  • 未停产; sourceforge 网站显示 2014 年的更新。
【解决方案6】:

docx4all

docx4all 是一个用于 docx 文件的跨平台所见即所得编辑器,使用 Java Swing 和 JavaFX Script。作为小程序或应用程序运行。见http://dev.plutext.org/trac/docx4all/wiki/FeatureSet

开源还是商业?见http://dev.plutext.org/forums/viewtopic.php?f=7&t=209

需要 Java 6。

【讨论】:

    【解决方案7】:
    • 这是链接:JRichTextEditor
    • 它是开源的 (LGPL)。
    • 你可以用它做任何你想做的事。只需从 github 克隆它。它是可扩展的。
    • 它具有相当多的功能,但欢迎进行增强。它是一个摇摆组件,依赖于 iText 2.1.7(仍然是 LGPL)和其他库(例如 xerces)。一个显着的特点是可以添加任何类别的标记点/范围。可用于超链接或其他任何东西。在库中还有一个帮助应用程序。

    【讨论】:

      【解决方案8】:

      使用 HTML WYSIWYG 编辑器和SWT browser component (see the snippets for examples)。选项:

      专业版:

      • HTML 提供了很多选项
      • 支持将 HTML 作为本机格式(因此当您需要将文档保存在某处或修改它们时不会出现异常问题,这与本机 Word 格式不同)。
      • 使用字体、颜色、图像很简单,因为您不必自己管理资源。浏览器组件会为你做这件事

      反对:

      • 解决方案取决于平台。使用richhtml4eclipse 进行的测试显示了在 Windows XP (IE) 和 Mac OSX (Safari) 上的不同行为
      • 如果出现问题,用户必须切换到 HTML 代码视图并自行修复。
      • 祝您在内容辅助、代码完成、拼写检查、折叠或注释方面好运。
      • 添加特殊功能会迫使您通过非常简单的 API 进行锁孔手术
      • 对于许多此类编辑器,性能并不是那么好,尤其是对于大型文档。
      • 取决于 SWT。

      来源:Lösungen für einen SWT Rich Text Editor

      【讨论】:

        【解决方案9】:

        看看JWord

        • 这是商业的
        • 许多功能(表格、分页、H/F、列布局、wmf、svg、复制粘贴、RTF、ODT、HTML 导出)
        • 免版税
        • 纯 Java-Swing (1.6)
        • 可扩展(基于 Swing Text API)

        【讨论】:

          【解决方案10】:

          Rich Text Viewer

          专业版:

          • 提供拼写检查、代码完成、撤消/重做、自动缩进以及您期望的大多数其他功能 (see here)

          反对:

          • 取决于SWT
          • 不支持表格

          【讨论】:

            【解决方案11】:

            Eclipse项目已经复活Vex (Visual Editor for XML)

            来自维基页面:

            • Vex 利用了许多构成 Eclipse Java IDE 的成熟插件,例如 CVS 界面、文档搜索书签设施和可搜索的帮助系统
            • Eclipse 平台实现了复杂的插件架构,允许使用第三方或自定义的内部插件扩展 Vex。
            • Vex 具有适用于许多平台的原生外观,包括 Windows、Linux/GTK 和 Macintosh OS-X/Carbon。
            • 使用 Eclipse IDE 的 Java 开发人员可以将 Vex 作为插件安装到他们的 IDE 中,从而可以轻松地使用 Vex 维护软件文档或其他 XML 文件
            • Vex 可重用:Vex 编辑器小部件可作为纯 Java 跨平台组件使用,具有绑定 SWT。开发人员可以重复使用此小部件,例如作为 RCP 应用程序。

            1.0 版已于 2012 年发布,1.1 版计划于 2013 年发布。

            User guide

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-01-05
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多