Исходник:
https://github.com/PHPOffice/PHPWord
Урок читаем обязательно. Тут описано как установить на openserver через композер и основы работы:
https://webformyself.com/phpword-sozdanie-ms-word-dokumentov-sredstvami-php/
Для копирования готового проекта из openservera на сервер надо полностью копировать папку vendor. По частям — не прокатит. После каждого обновления устаноки копозером на openserver надо полностью копировать vendor .
В каждом проекте, где мы используем эту библиотеку вверху надо прописать require_once __DIR__ . ‘/vendor/autoload.php’;
Необходимые файлы:
вашфайл.php
/vendor
Документация от авторов:
http://phpword.readthedocs.io/en/latest/
Если выскакивает ошибка: Надо настроить сервер.
Warning: is_dir(): open_basedir restriction in effect. File(/tmp/PHPWordWriter/) is not within the allowed path(s): (/var/www/wwwbis/data:.) in /var/www/wwwbis/data/www/блаблабла/vendor/phpoffice/phpword/src/PhpWord/Writer/AbstractWriter.php on line 202
Далее, то, что не описано в уроке. Урок читать обязательно.
Колонтитулы это — Футер и задается так:
1 2 3 4 5 6 7 8 9 10 |
$footer = $section->addFooter(); $styleFont = array( 'name' => 'Times New Roman', 'size' => 9,'color' => '00000' ,'bold'=>false); $footer_space = array('spaceAfter' => 200); // для примера добавит внутрь футера таблицу $table = $footer->addTable(); $table->addRow(); $table->addCell(4800)->addText('Исполнитель: ' ,$styleFont ,$footer_space); $table->addCell(4500)->addText('Заказчик:' ,$styleFont,$footer_space); $styleFontPage = array( 'name' => 'Times New Roman', 'size' => 9); $table->addCell(300)->addPreserveText('{PAGE}',$styleFontPage ,$footer_space); // добавляем в ячейку со страницами |
Засовываем в ячейку таблицы сложно- форматированный текст через новый объект createTextRun. Сложное форматирование задаётся так:
1 2 3 4 5 |
$textrun =$table->addCell(4200)->createTextRun(); $styleFont = array('bold'=>true, 'size'=>16, 'name'=>'Calibri'); $styleFont2 = array('bold'=>true, 'size'=>16, 'name'=>'Calibri'); $textrun->addText(' text1 ', $styleFont); $textrun->addText(' text12 ', $styleFont2); |
Тот же сложно форматированный текст как абзац через новый объект createTextRun.
1 2 3 4 5 6 7 |
$textrun=$section->createTextRun(); $styleFont_textrun = array('name' => 'Times New Roman', 'size' => 14,'color' => '00b0f0' ,'bold'=>TRUE); $text_abzaz_settign = array('name' => 'Times New Roman', 'size' => 14,'color' => 'ffffff' ,'bold'=>false); $textrun->addText(' text 1 ', $text_abzaz_settign); $textrun->addText(' text bold 2', $styleFont_textrun); $textrun->addText('text 3', $styleFont_textrun); |
создаем таблицу
1 2 3 4 5 6 7 8 9 |
$table = $section->addTable(); $table->addRow(200); $table_styleFont_bold=array('name' => 'Times New Roman', 'size' => 12,'color' => '000000' ,'bold'=>TRUE); $table_styleFont_normal=array('name' => 'Times New Roman', 'size' => 12,'color' => '000000' ,'bold'=>false); $table->addCell(4800)->addText("Исполнитель",$table_styleFont_bold); $table->addCell(600)->addText(""); $table->addCell(4200)->addText("Заказчик",$table_styleFont_bold); |
//выставляем заголовки.
1 2 3 |
$fontStyle = array( 'name' => 'Times New Roman', 'size' => 14,'color' => '00000' ,'bold'=>TRUE); $phpWord->addTitleStyle(6,$fontStyle); $section->addTitle('Заголовок',6); |
Спасибо за внимание))