Конвертация из любого формата в любой можно сделать с помощью 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);