2016-08-04 15 views
1


Раньше я хочу вывести файл doc, это нормально.
Но когда я перехожу к docx, тогда мне сказали, что не могу открыть docx, потому что нашел проблему с ее содержимым/файл поврежден.

Если я вытаскиваю «эхо», то ошибки не возникает, но с пустым контентом.
Вот мой код:PHP: вывести файл docx из html

$fileName = $m_year . "-" . $m_month . "-" . $m_con_id . " - Monthly Report.docx"; 
header("Content-type: application/vnd.openxmlformats-officedocument.wordprocessingml.document"); 
header("content-disposition: attachment;filename=\"". $fileName ."\""); 
header('Cache-Control: public'); 
$content = ets_docMonthlyReportTemplate(); 
echo $content; 

Тогда я изменяю vsword, но дайте мне недопустимое имя персонажа. Расположение: Часть: /word/document.xml

require_once '/vsword/VsWord.php'; 
VsWord::autoLoad(); 
$doc = new VsWord(); 
$parser = new HtmlParser($doc); 
$content = ets_docMonthlyReportTemplate(); 
$html= $content; 
$parser->parse($html); 
echo '<pre>'.($doc->getDocument()->getBody()->look()).'</pre>'; 
$doc->saveAs($fileName); 

Могу ли я просто выход на заголовок типа MIME или должны применять библиотеку?
Спасибо.

+2

Изменение заголовка типа мим просто меняет заголовок типа пантомимы, он не меняется любое содержимое, которое вы отправляете в браузер, просто подсказывает, как браузер shoud интерпретирует этот контент .... он не автоматически меняет разметку html в файл docx собственного формата .... чтобы реально изменить этот контент, вам нужно библиотеку (или написать свою собственную библиотеку) –

+0

Привет, спасибо за ваш ответ. Мне это достаточно ясно. –

ответ

0

Для этого вам необходимо использовать библиотеку.

Одним из наиболее популярных из них является PHPWord

Существует также VSword

Там также оплачиваются soluitions PHPDocx