#ckeditor #docx4j
#ckeditor #docx4j
Вопрос:
Я пытаюсь «загрузить» преобразованный в HTML файл .docx в CKEditor. Пока что преобразование из .docx в html почти идеально, и я могу передать код из Java (Spring / Maven) в мое веб-приложение (ZK framework, используя собственный CKEditor и JavaScript).
Проблемы, с которыми я сталкивался до сих пор, связаны с тем фактом, что загруженный текст либо полуформатирован, либо вообще не отформатирован, и это фактическая причина, по которой я работаю над этим (чтобы избежать потери формата при копировании-вставке). Мне удалось найти причину такого поведения: CK любит HTML-теги ИЛИ не будет использовать несколько стилей для каждого контейнера (т. Е. style=»font-weight: bold» в порядке, но style=»font-style: italic; font-weight: bold» — нет, он выберет тот или иной), а Docx4j использует встроенный стиль для форматирования из-за XHTML (насколько я читал).
После этого я попытался принудительно изменить стили в CKEditor с помощью файла конфигурации, но это не было решением, поскольку один элемент будет перезаписывать другой, в результате чего будет использоваться только один стиль. При всем этом я решил обработать тестовый docx (это буквально выделенная жирным шрифтом строка «привет, мир», выделенная курсивом и подчеркиванием), преобразовал его и принудительно вставил теги b, i и u в результирующий HTML-файл через Java. Результат был желаемым.
Теперь я сосредоточен на настройке docx4j, чтобы он использовал теги вместо встроенного css, поскольку пока это «самое простое» решение, и мне понравился полученный из него html. После еще нескольких изменений я наткнулся на старый класс с методом, который (по имени) будет это делать, но его нет в моей импортированной библиотеке. Я пробовал как новые, так и старые методы преобразования в html, но результаты те же.
Есть ли настройка или способ сообщить docx4j (ссылка на версию 8.2.3), что мне нужны теги html вместо стилей css? Я видел примеры и изучал javadoc, но он немного устарел и не очень мне помог. Кажется, это единственный способ сделать это или создать свой собственный анализатор, что просто невозможно из-за временных ограничений.
Спасибо!