я использую phpdocx для создания текстового документа.
я динамически менял заголовки в словах.
поэтому я хочу заменить переменную заголовка динамически.
На форуме phpdocx говорят, что это можно сделать с помощью метода WordFragment, но это не работает ..
http://www.zxcv.phpdocx.com/en/forum/default/topic/734
вот мой код, я поместил переменную $ TESTTT $ в заголовок
//path to the CreateDocx class within your PHPDocX installation
require_once '../../../classes/CreateDocx.inc';
$docx = new CreateDocxFromTemplate('Doc.docx');
//create the Word fragment that is going to replace the variable
$wf = new WordFragment($docx, 'document');
$text='try to add head';
$wf->addText($text);
$docx->replaceVariableByWordFragment(array('TESTTT' => $wf), array('type' => 'block'));$docx->createDocx('tessst');
при создании из шаблона также необходимо добавить:
require_once ‘../../../classes/CreateDocxFromTemplate.inc’;
Вам действительно нужно использовать фрагмент Word?
С PHPDocx вы можете легко заменить текстовые переменные и заполнители изображения, и этого должно быть достаточно в большинстве случаев.
Если это не так, вы можете использовать метод импорта верхних и нижних колонтитулов или заменить все это методом добавления заголовков.
В настоящее время phpdocx не поддерживает изменение переменных по wordfragment ни в заголовке, ни в нижнем колонтитуле.
Этот код работает со мной
$docx = new CreateDocxFromTemplate('docTemplate/HeaderTest.docx');
$docx->setTemplateSymbol('#');
$variables = array('VAR_NAME' => "SOME TEXT");
$options = array('target' => 'header');
$docx->replaceVariableByText($variables, $options);