WYSIWYG текстовый редактор на Java
Я хотел бы собрать все текстовые редакторы WYSIWYG для Java здесь.
Некоторые правила для записей:
- Там должна быть ссылка на проект / продукт
- Вы должны указать, является ли это открытым исходным кодом или коммерческим
- Можно ли расширить редактор (добавить новые функции, такие как "фиолетово-центрированная судоку")? Это просто или сложно?
- Имеет ли он множество функций (причудливые стили символов и абзацев с онлайн-проверкой орфографии для нескольких языков в одном документе) или только основы (полужирный, курсив, подчеркивание отсутствует)?
- Перечислите важные зависимости (это работает на голой Java с Swing? SWT? MacOS?)
- Ваше личное мнение
Этот список должен помочь разработчикам определить, какой редактор выбрать. Я не ищу "лучшее", а больше "что там".
11 ответов
Я использовал этот компонент, и он работает хорошо. Это 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 ( примеры приведены в фрагментах). Опции:
- SWT Composer
- EPF Rich Text
- richhtml4eclipse (на основе TinyMCE)
- SWT Browser Widget для визуализации редактора TinyMCE WYSIWYG
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 год.