Текстовый редактор WYSIWYG в Java
Я хотел бы собрать все текстовые редакторы WYSIWYG для Java здесь.
Некоторые правила для записей:
- Должна быть ссылка на проект/продукт
- Вы должны указать, открывать ли он источник или коммерческий
- Можно ли расширить редактор (добавить новые функции, такие как "фиолетовая центрированная судоку" )? Это просто или сложно?
- Есть ли у него множество функций (стили стилей и стилей абзаца с онлайн-проверкой орфографии на нескольких языках в одном документе) или просто основы (жирный, курсив, без подчеркивания)?
- Перечислите важные зависимости (работает ли она на голой Java с Swing? SWT? MacOS?)
- Ваше личное мнение
Этот список должен помочь разработчикам определить, какой редактор выбрать. Я не ищу "лучшее", но больше "что там".
Ответы
Ответ 1
JWebEngine
Я рекомендую JWebEngine. Это единственный, который я знаю, который проходит тест браузера ACID1 и тест почтовой кислоты. Большинство других редакторов 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 или выше. Он также запускается в не подписанных апплетах.
Ответ 2
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);
Ответ 3
Может быть встроен в Java с помощью OOoBean. Исходный код работает под Swing, но вы можете заставить его работать и под SWT, используя AWT/SWT Bridge (пример кода).
Проект является открытым исходным кодом (LGPL). Код зависит от ОС, но доступны версии для всех основных ОС (Windows, Linux, MacOS и Solaris поддерживаются на сайте проекта, но вы также можете загрузить исходный код и скомпилировать его для других).
Поскольку базовый продукт представляет собой полнофункциональное офисное приложение, он предлагает все функции, которые могут вам понадобиться (фантастические стили, онлайн-проверка орфографии на разных языках, встраивание изображений, поток текста вокруг изображений, вы называете его).
Недостаток заключается в том, что у вас должен быть установлен OpenOffice; Фактически, редактор не является частью Java, но это удаленный процесс, который просто отображается в вашем окне приложения Java. Это означает, что время запуска довольно заметно и производительность может быть вялой. Также обработка иногда "нечетная". Требуется некоторая конфигурация, чтобы избавиться от дополнительных границ и нежелательной разбивки на страницы.
Из-за этого редактор на самом деле не расширяется с Java. Вам придется либо писать код на С++, либо используя собственный встроенный язык OOo. Что вы можете сделать, так это то, что вы можете регистрировать слушателей в документе, и у вас есть полный доступ к базовой модели документа. Таким образом, вы можете зацепиться за важные части и изменить поведение, но это часто бывает так же, как выполнение операции с замочной скважиной.
Мой вывод: если у OO есть необходимые функции, это может быть самый простой способ получить то, что вам нужно. Если вам нужна большая настройка, вы будете сражаться с восходящей битвой против фреймов по умолчанию.
Ответ 4
- его GPLed
- не имеют представления о том, насколько легко расширить его.
- не поддерживает проверку орфографии, но имеет таблицы, списки.
- На основе Swing требуется Java 1.4 и, возможно, Java Help
- Я не использовал его в качестве программиста - точно так же, как и для конечного пользователя, он имеет некоторые причуды - вроде не многоуровневого списка или таблиц, которые невелики, но все в порядке.
- Плюс это дает вам HTML, поэтому его легко внедрить результаты обработки в другие компоненты.
- Теперь SourceForge
Ответ 5
Мне нужно было то же самое для нашего приложения, сделало исследование и нашло еще два продукта EKit и Metaphase Editor, основанный на Charles Bell HTMLDocumentEditor
, как по лицензии LGPL, так и в хорошем состоянии.
Но я не тестировал их. В эти дни мы увидим, что мы выбираем.
Ответ 6
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.
Ответ 7
- Здесь ссылка: JRichTextEditor
- Это открытый источник (LGPL).
- Вы можете делать все, что хотите. Просто клонируйте его из github. Он расширяемый.
- Он поставляется с некоторыми функциями, но улучшения приветствуются. Это компонент качания, зависит от iText 2.1.7 (который все еще LGPL) и других библиотек (например, xerces). Одной из примечательных особенностей является возможность добавления меток/диапазонов любого класса. Что можно использовать для гиперссылок или что угодно. В библиотеке также есть приложение справки.
Ответ 8
Использование редактора 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
Ответ 9
Rich Text Viewer
Pro:
- Предлагает проверку орфографии, завершение кода, отмену/повтор, автоматический отступ и большинство других функций, которые вы ожидаете (см. здесь)
Contra:
- Зависит от SWT
- Поддержка таблиц
Ответ 10
Посмотрите JWord
- Это коммерческая
- Множество функций (таблицы, подкачки, H/F, расположение столбцов, wmf, svg, copy-paste, RTF, ODT, экспорт HTML)
- безвозмездное
- чистая Java-Swing (1.6)
- расширяемый (на основе Swing Text API)
Ответ 11
Проект Eclipse воскресил Vex (Visual Editor для XML)
На странице wiki:
- 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 год.
Руководство пользователя