В данной статье для создания документа .docx на основании шаблона будем использовать библиотеку PHPWord.
public function setValue($search, $replace) {
if(substr($search, 0, 2) !== '${' && substr($search, -1) !== '}') {
$search = '${'.$search.'}';
}
if(!is_array($replace)) {
$replace = utf8_encode($replace);
}
$this->_documentXML = str_replace($search, $replace, $this->_documentXML);
}
public function setValue($search, $replace) {
if(substr($search, 0, 2) !== '${' && substr($search, -1) !== '}') {
//было - $search = '${'.$search.'}';
$search = '/\$\{.*?'.$search.'.*?\}/is';
}
if(!is_array($replace)) {
//$replace = utf8_encode($replace);
}
$this->_documentXML = preg_replace($search, $replace, $this->_documentXML);
}
include_once 'PHPWord.php'; //подключение библиотеки
$word = new PHPWord(); //создание документа
$document = $word->loadTemplate('act_template.docx'); //загрузка шаблона документа
$document->setValue('number', $number_param); //заполнение метки значением
$document->setValue('year', $year_param);
$document->save('file_act_'.$number_param.'.docx'); //сохранение файла в файловой системе bitrix
Библиотека PHPWord располагает большим количеством методов для изменения свойств документа, форматирования текста, разделов документа, добавления изображений, таблиц, списков и др.