Создать документ MS Word, используя PhpWord

Я собираюсь создать документ с помощью PhpWord, у меня есть черновик документа, где я установил client_name динамически.

$templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor($draftUrl);
$templateProcessor->setValue("client_name", $clientName);

$filename = '30.docx';
$templateProcessor->saveAs($filename);

тогда я читаю этот файл и пользователь может скачать его

header('Content-Type: application/octet-stream');
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header("Content-Disposition: attachment; filename='$filename'");
readfile($filename);

когда я пытаюсь открыть его через Майкрософт офис У меня есть это сообщение:
введите описание изображения здесь

когда я нажимаю Хорошо:
введите описание изображения здесь

и после принятия этого, наконец, я вижу, что мой документ готов. Что мне нужно для создания читаемого документа?

2

Решение

Я только добавил ob_clean () в мой код, прежде чем читать, и все работает нормально.

Эта функция отбрасывает содержимое буфера вывода.

Эта функция не уничтожает выходной буфер, как ob_end_clean ()
делает.

поэтому я гарантировал, что нежелательный вывод не попадет в сгенерированный документ.

$templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor($draftUrl);
$templateProcessor->setValue("client_name", $clientName);

$filename = '30.docx';
$templateProcessor->saveAs($filename);

header('Content-Type: application/octet-stream');
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header("Content-Disposition: attachment; filename='$filename'");
ob_clean();
readfile($filename);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]