WYSIWYG текстовый редактор на Java

Я хотел бы собрать все текстовые редакторы WYSIWYG для Java здесь.

Некоторые правила для записей:

  • Там должна быть ссылка на проект / продукт
  • Вы должны указать, является ли это открытым исходным кодом или коммерческим
  • Можно ли расширить редактор (добавить новые функции, такие как "фиолетово-центрированная судоку")? Это просто или сложно?
  • Имеет ли он множество функций (причудливые стили символов и абзацев с онлайн-проверкой орфографии для нескольких языков в одном документе) или только основы (полужирный, курсив, подчеркивание отсутствует)?
  • Перечислите важные зависимости (это работает на голой Java с Swing? SWT? MacOS?)
  • Ваше личное мнение

Этот список должен помочь разработчикам определить, какой редактор выбрать. Я не ищу "лучшее", а больше "что там".

11 ответов

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);

JWebEngine

Я рекомендую JWebEngine. Это единственный, который я знаю, который проходит тест браузера ACID1 и тест mail-acid. Большинство других Java-редакторов HTML основаны на javax.swing.text.html.HTMLDocument и имеют все те же ошибки. Поддержка CSS очень плоха с HTMLDocument. JWebEngine имеет очень хорошую поддержку для просмотра HTML с помощью CSS.

  • Ссылка на сайт. Есть также онлайн образцы.
  • Коммерческая лицензия
  • Это очень просто расширить. Поставщик использует его для разных целей, таких как редактор, механизм печати HTML, отображение пользовательских заполнителей и т. Д. Нет проблем с видимостью классов, таких как Sun HTMDocument.
  • Он основан на javax.swing.text.JEditorPane или javax.swing.text.JTextPane, и вы можете использовать его вместе со сторонними инструментами, такими как средство проверки правописания JOrtho.
  • Это чистая Java и работает на всех платформах с Java SE 5 или выше. Это также работает в не подписанных апплетах.

Мне нужно то же самое для нашего приложения, провел исследование и нашел еще два продукта EKit и Metaphase Editor, основанные на Чарльзе Белле. HTMLDocumentEditor, и под лицензией LGPL и хорошо выглядеть.

Но я их не проверял. В эти дни мы увидим, что мы выбираем.

OpenOffice's Writer

Может быть встроен в Java с помощью OOoBean. Исходный код работает под Swing, но вы также можете заставить его работать под SWT, используя AWT/SWT Bridge ( пример кода).

Проект с открытым исходным кодом ( LGPL). Код зависит от ОС, но есть версии, доступные для всех основных ОС (Windows, Linux, MacOS и Solaris поддерживаются на сайте проекта, но вы также можете скачать исходный код и скомпилировать его для других).

Поскольку базовый продукт представляет собой полнофункциональное офисное приложение, он предлагает все функции, которые вам могут понадобиться (модные стили, онлайн-проверка орфографии на разных языках, встраивание изображений, обтекание текста вокруг изображений, вы называете его).

Недостатком является то, что у вас должен быть установлен OpenOffice; на самом деле, редактор не является частью Java, но это удаленный процесс, который просто визуализируется в окне вашего Java-приложения. Это означает, что время запуска довольно заметно, а производительность может быть вялой. Также обработка иногда "странная". Требуется некоторая настройка, чтобы избавиться от дополнительных границ и нежелательной нумерации документов.

Из-за этого редактор на самом деле не расширяемый с Java. Вам придется либо писать код на C++, либо использовать собственный встроенный язык OOo. Что вы можете сделать, так это зарегистрировать слушателей в документе и получите полный доступ к базовой модели документа. Таким образом, вы можете подключиться к важным деталям и изменить поведение, но часто это похоже на выполнение операции с замочной скважиной.

Мой вывод: если у ОО есть нужные вам функции, это может быть самый простой способ получить то, что вам нужно. Если вам нужно много настроек, вы будете сражаться в восходящем потоке с настройками фреймворка.

Просто HTML

  • его GPLed
  • понятия не имею, как легко это продлить
  • не поддерживает проверку орфографии, но есть таблицы, списки.
  • На основе Swing требуется Java 1.4 и, необязательно, справка Java
  • Я не использовал его в качестве программиста - просто как конечный пользователь, у него есть некоторые причуды - как нет многоуровневых списков или таблиц, которые менее чем хороши, но это нормально.
  • Кроме того, он предоставляет вам HTML, поэтому его результаты легко встраивать в другие компоненты.
  • Сейчас на SourceForge
  • Вот ссылка: JRichTextEditor
  • Это с открытым исходным кодом (LGPL).
  • Вы можете делать с ней все, что захотите. Просто клонируйте его из github. Это расширяемое.
  • Он поставляется с некоторыми функциями, но улучшения приветствуются. Это компонент Swing, зависит от iText 2.1.7 (который по-прежнему LGPL) и других библиотек (например, xerces). Одна примечательная особенность - это возможность добавлять отметки / диапазоны любого класса. Который может быть использован для гиперссылок или что-то еще. В библиотеке также есть приложение справки.

docx4all

docx4all - это кроссплатформенный WYSIWYG-редактор для файлов 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.

Посмотрите на JWord

  • Это коммерческий
  • Множество функций (таблицы, пейджинг, H/F, расположение столбцов, wmf, svg, копирование-вставка, RTF, ODT, экспорт HTML)
  • Безвозмездная
  • чистый Java-Swing (1.6)
  • расширяемый (на основе Swing Text API)

Использование редактора HTML WYSIWYG и компонента браузера SWT ( примеры приведены в фрагментах). Опции:

Pro:

  • Много вариантов из-за HTML
  • Поддерживает HTML как собственный формат (так что нет особых проблем, когда вам нужно где-то сохранить документы или изменить их, в отличие, скажем, от исходного формата Word).
  • Работать со шрифтами, цветами, изображениями просто, поскольку вам не нужно самостоятельно управлять ресурсами. Компонент браузера сделает это за вас

Contra:

  • Решение зависит от платформы. Тесты с richhtml4eclipse показали различное поведение в Windows XP (IE) и Mac OSX (Safari)
  • Если есть проблема, пользователи должны будут переключиться в представление кода HTML и исправить это самостоятельно.
  • Удачи с помощью контента, дополнением кода, проверкой орфографии, свертыванием или аннотациями.
  • Добавление специальных функций либо заставит вас сделать операцию с замочной скважиной через довольно простой API
  • Со многими из этих редакторов производительность не так уж велика, особенно с большими документами.
  • Зависит от SWT.

Источник: Lösungen für einen SWT Rich Text Editor

Проект Eclipse воскрес Vex (визуальный редактор для XML)

Со страницы вики:

  • Vex использует многие из зрелых плагинов, составляющих Eclipse Java IDE, таких как интерфейс CVS, средства поиска документов и создания закладок, а также справочная система с возможностью поиска.
  • Платформа Eclipse реализует сложную архитектуру плагинов, позволяющую расширять Vex сторонними или пользовательскими внутренними плагинами.
  • Vex доступен со встроенным интерфейсом для многих платформ, включая Windows, Linux/GTK и Macintosh OS-X/Carbon.
  • Разработчики Java, использующие Eclipse IDE, могут устанавливать Vex в свои IDE в качестве подключаемого модуля, что упрощает поддержку документации программного обеспечения или других файлов XML с помощью Vex.
  • Vex можно использовать повторно: виджет редактора Vex доступен как чистый Java, кроссплатформенный компонент с привязками SWT. Разработчики могут повторно использовать этот виджет, например, как приложение RCP.

Версия 1.0 была выпущена в 2012 году, версия 1.1 запланирована на 2013 год.

Гид пользователя

Rich Text Viewer

Pro:

  • Предлагает проверку орфографии, завершение кода, отмену / повтор, автоматический отступ и большинство других функций, которые вы ожидаете ( см. Здесь)

Contra:

  • Зависит от SWT
  • Нет поддержки таблиц
Другие вопросы по тегам