Вы пробовали встроенный в Word инструмент очистки CKEditor?
Кажется, он запускается автоматически при использовании диалога «Вставить из Word», но также может быть использован из вашего кода.
Я не эксперт по CKEditor API, поэтому может быть более эффективный или правильный способ сделать это, но, похоже, это работает в текущей версии (3.3.1):
function cleanUp() {
if (!CKEDITOR.cleanWord) {
// since the filter is lazily loaded by the pastefromword plugin we need to add it ourselves.
// We use the same function as the callback for when the cleanup filter is loaded. Change the script path to the correct one
CKEDITOR.scriptLoader.load("../plugins/pastefromword/filter/default.js", cleanUp, null, false, true );
alert('loading script for the first usage');
} else { // The cleanWord is available for use
// change to the correct editor instance
var editor = CKEDITOR.instances.editor1;
// perform the clean up
var cleanedUpData = CKEDITOR.cleanWord(editor .getData(), editor );
// do something with the clean up
alert(cleanedUpData);
}
}
cleanUp();
Если вам не нравится эта очистка, вы можете изменить default.js для своих нужд.
Для очистки доступны некоторые параметры конфигурации, установите флажок http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html (найдите параметры "pasteFromWord").
Если вам нужно что-то более продвинутое, но для этого потребуется доступ к серверу, я рекомендую вам проверить WordOff (http://wordoff.org/).. Возможно, вы сможете построить оболочку прокси и jsonp вокруг их службы, чтобы использовать ее из клиент без установки сервера.