Для примера, можно взять этот
https://www.froala.com
1. Все изменения в нем происходят в блоке с атрибутом contenteditable, т.е. все содержимое уже готовый html
2. Через ajax все содержимое блока отправляете в виде текста на сервер.
3. Создаете темповую директорию
3. Парсите полученный html блок, чтобы вытащить URL картинок.
3.а. Загружаете картинки из инета в данную директорию.
3.б. Меняеет в html блоке URL на относительный путь к файлам с загруженными картинками.
4. Берете шаблонную HTML страницу, в которой прописаны css используемые wysiwyg редактором, и вставляете в нее ваш html блок.
5. Архивируете данную директорию
6. Отдаете клиенту полученный zip или rar архив