Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
class DocxDocument {
protected $archive;
public function __construct($filename, $template_path = '/template/' ){
// Путь к шаблону
$this->path = dirname(__FILE__) . $template_path;
// Если не получилось открыть файл, то жизнь бессмысленна.
if ($this->archive->open($filename, ZIPARCHIVE::CREATE) !== TRUE) {
die("Unable to open <$filename>\n");
}
// Структура документа
$this->archive->files = array(
"word/_rels/document.xml.rels",
"word/theme/theme1.xml",
"word/fontTable.xml",
"word/settings.xml",
"word/styles.xml",
"word/document.xml",
"word/stylesWithEffects.xml",
"word/webSettings.xml",
"_rels/.rels",
"docProps/app.xml",
"docProps/core.xml",
"[Content_Types].xml" );
// Добавляем каждый файл в цикле
foreach( $this->archive->files as $f )
$this->addFile($this->archive->path . $f , $f );
}
//...
}
// Если не получилось открыть файл, то жизнь бессмысленна.
if ($this->open($filename, ZIPARCHIVE::CREATE) !== TRUE) {
die("Unable to open <$filename>\n");
}
Честная генерация DOCX на PHP. Часть 1