Как вставить текст из Word в обычный текст, сохранив определенные стили? - PullRequest
0 голосов
/ 27 июля 2011

Я хочу позволить пользователю вставлять текст в редактор (в настоящее время CKEditor). При вставке текста все стили и элементы, не включенные в белый список, должны быть удалены, включая изображения, таблицы и т. Д. Таким образом, 90% следует преобразовать в обычный текст или удалить, в то время как некоторые простые стили, такие как жирный, курсив или подчеркнутый, должны быть сохранены.

Не думал, что это так сложно. Но все, что я могу найти в документации и в примерах CKEditor, - это вставить полный текст или вставить очищенный контент из Word без возможности настроить белый список (и даже если я удалю все плагины, связанные с таблицами, это все еще возможно вставить таблицу из MS WorD).

Я очень, очень ценю любой намек.

Спасибо.

Ответы [ 3 ]

3 голосов
/ 27 июля 2011

Вы не можете без написания собственного парсера.Другая проблема заключается в том, что MS Word использует кодировку Windows-1252, а большая часть Интернета использует кодировку UTF-8, поэтому, если вы вставляете из WORD и передаете эти данные через AJAX, они будут искажены.довольно хорошая функция «вставить из слова», вряд ли вы найдете онлайн-эквивалент.Это огромная и сложная проблема, которая сама по себе является приложением.Даже WORD «сохранить как HTML» не может даже справиться с этим достойно.

К сожалению, большинство из них должны сделать это в ASCII (вставить в Блокнот), поместить в редактори отметьте его обратно.

1 голос
/ 29 июля 2011

Вы можете добавить прослушиватель для события 'paste' в экземпляре редактора: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#event:paste

Таким образом, вы получите HTML-код, который он вставит, и сможете выполнить любую необходимую очисткупример, основанный на вставке этого html в div и последующей работе с DOM или использовании регулярных выражений в строке).

0 голосов
/ 06 сентября 2011

Нашли решение:

  1. Прослушивание события вставки, как пишет AlfonsoML.
  2. Отправка вставленного содержимого Word на сервер.
  3. Анализ с помощью HTML-пакета Agility Pack .
  4. Отправка обратно клиенту.
  5. Вставка в редакторе.
...