Это не легко решить.
Прежде всего, если вы хотите написать настоящие документы Word, вам придется делать это в Windows. Вы можете использовать COM для общения с Word, и таким образом вам удастся получить хорошие результаты. Я перепробовал все решения на основе Unix / Linux, и результаты были не так хороши.
В противном случае, я бы посоветовал вам написать RTF - это так же хорошо. И, в конце концов, вы можете вызвать .rtf-файл, .doc, и никто этого не заметит. RTF имеет несколько ограничений (форматирование), но с другой стороны - все это ASCII и стандарт RTF довольно всеобъемлющий и хорошо документирован.
Есть класс, который делает это очень хорошо - phpLiveDocx (это отличное введение). И этот класс также претендует на написание PDF и DOC - но я еще не пробовал. Я использую другое решение для PDF.