xml — поля OOXML — PHP SCRIPT — Экспорт в MS Word

У меня есть следующий скрипт php, который экспортирует файл .doc. Я хочу установить определенные поля страницы для экспортированного файла .doc, но все, что я пробовал, сработало.

 /*header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment; Filename=".rand().".doc");
header("Expires: 0");*/


header( 'Content-Type: application/msword' );
header("Content-disposition: attachment; filename=" .date("Y-m-d").".doc");
/*
header("Content-type: application/vnd.ms-word");
header("Content-disposition: attachment; filename=" .date("Y-m-d").".rtf");
*/
$html = preg_replace('%/[^\\s]+\\.(jpg|jpeg|png|gif)%i', 'http://www.abogaciapractica.com\\0', $_POST['description']);

print "<html xmlns:v=\"urn:schemas-microsoft-com:vml\"";
print "xmlns:o=\"urn:schemas-microsoft-com:office:office\"";
print "xmlns:w=\"urn:schemas-microsoft-com:office:word\"";
print "xmlns=\"http://www.w3.org/TR/REC-html40\">";
print "<xml>
<w:WordDocument>
<w:View>Print</w:View>
<w:DoNotHyphenateCaps/>
<w:PunctuationKerning/>
<w:DrawingGridHorizontalSpacing>9.35 pt</w:DrawingGridHorizontalSpacing>
<w:DrawingGridVerticalSpacing>9.35 pt</w:DrawingGridVerticalSpacing>
</w:WordDocument>
</xml>
";

die($html);

Я попробовал коды, которые находятся в следующих ссылках и не увенчались успехом, поля страницы остались прежними.

http://officeopenxml.com/WPSectionPgMar.php

https://en.wikipedia.org/wiki/Microsoft_Office_XML_formats

Спасибо заранее за ваше время.


Для будущих ссылок я дополню пост альтернативным решением, которое я нашел с помощью библиотеки PHPword.

    $phpWord = new \PhpOffice\PhpWord\PhpWord();

$section = $phpWord->addSection(
array('paperSize' => 'Legal', 'marginLeft' => 2834.645669291, 'marginRight' => 1417.322834646, 'marginTop' => 2834.645669291, 'marginBottom' => 1417.322834646)
);
//$html = $_POST['description'];
$html = $_POST['description'];


\PhpOffice\PhpWord\Shared\Html::addHtml($section, $html, false, false);

// Save file
// Saving the document as OOXML file...
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
//$objWriter->save('test.docx');


$temp_file_uri = tempnam('', 'xyz');
$objWriter->save($temp_file_uri);
//download code
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=helloWorld.docx');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Content-Length: ' . filesize($temp_file_uri));
readfile($temp_file_uri);
unlink($temp_file_uri); // deletes the temporary file
exit;

0

Решение

Задача ещё не решена.

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

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

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