在 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"));
在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"));