在 PHPWord 中使用 setValue 使单词变粗

Make word bold with setValue in PHPWord

在PHPWord中使用TemplateProcessor时,如何让被替换的单词加粗加下划线?找到的解决方案非常旧(2016 年)。

我尝试创建我的功能,编辑 xml 文档,但完成后文件崩溃了。

我的代码:

$path = public_path()."/example/dogovor.docx";

$document = new TemplateProcessor($path);

$document->setValue('student-name', 'Alex');

$document->saveAs(public_path("documents/test.docx"));

试过这个功能:

private function makeWordBold($str, $hex=null, $style='b'): string
    {
        $cor = $hex ? "<w:color w:val='".$hex."'/>" : "";
        $before="/w:t/w:r<w:r><w:rPr>".$cor."<w:".$style."/>/w:rPr<w:t xml:space='preserve'>";
        $after='/w:t/w:r<w:r><w:t>';
        return $before.$str.$after;
    }
$path = public_path()."/example/dogovor.docx";

$document = new TemplateProcessor($path);
$word = new TextRun();
$word->addText('Alex', array('underline' => 'single', 'bold' => true));
$document->setComplexValue('student-name', $word);
$document->saveAs(public_path("documents/test.docx"));