Конвертация из любого формата в любой можно сделать с помощью libreoffice, для этого уже написали обертку php и ей можно пользоваться. Взято отсюда:
Коротко оттуда:
Устанавливаем
# сам libreoffice sudo apt-get install libreoffice-core --no-install-recommends # пакет с оберткой composer require mnvx/lowrapper # если проблема с конвертацией возникает, можно попробовать установить sudo apt install libreoffice-writer Код на PHP <?php use Mnvx\Lowrapper\Converter; use Mnvx\Lowrapper\LowrapperParameters; use Mnvx\Lowrapper\Format; // Создаем объект конвертера $converter = new Converter(); // Описываем параметры для конвертера $parameters = (new LowrapperParameters()) // На вход подаем строку с HTML ->setInputData('<html>My html file</html>') // В каком формате нужен результат ->setOutputFormat(Format::TEXT_DOCX) // Файл для сохранения результата ->setOutputFile('path-to-result-docx.docx'); // Запускаем конвертацию $converter->convert($parameters);