Навскидку вижу пока 2 варианта.
Первый:
Если РНР работает под Windows, то через СОМ.
посмотри раздел "COM support functions for Windows" в справке по РНР
вот пример оттуда:
<?php
// starting word
$word = new COM("word.application") or die("Unable to instanciate Word");
echo "Loaded Word, version {$word->Version}\n";
//bring it to front
$word->Visible = 1;
//open an empty document
$word->Documents->Add();
//do some weird stuff
$word->Selection->TypeText("This is a test...");
$word->Documents[1]->SaveAs("Useless test.doc");
//closing word
$word->Quit();
//free the object
$word->Release();
$word = null;
?>
Второй вариант:
использовать формат RTF. Описания его валяются в инете. Формируешь файл, набиваешь нужными
данными с форматированием, пишешь расширение "doc" и отправляешь