В начале страницы сделать проверку на get запрос с параметром, например, download.
Создать буфер, заполнить, сделать дамп буфера в переменную $content и отдать страницу с нужными заголовками (смотри ниже).
Отдать что-то вроде этого:
header('Content-Type: application/vnd.ms-word');
header('Content-Disposition: attachment; filename=file.doc');
echo $content;
PS Это при условии, если нужна вся логика в одном файле.