Я должен был сделать это несколько лет назад и в итоге развернул свое собственное решение. Я создал документ Word в нужном формате, сохранил его в формате HTML, а затем добавил код, где это необходимо для извлечения текста из базы данных и форматирования так, как это нравится MS Word. Я заставил заголовок заставить клиента думать, что он получает документ Word вместо файла HTML. Microsoft Word счастливо открыл файл, как будто это был обычный документ Word.
Если бы вместо этого было возможно вывести файл DOCX, вы могли бы сделать XSL-преобразование.