如何在PHPWord中为addHtml生成的表格设置Arial 10号默认字体?
解决PHPWord addHtml表格字体默认Times New Roman的问题
方法1:在HTML内容中嵌入全局样式
Html::addHtml()会解析HTML内的<style>标签,直接给文本和表格设置全局样式是最可靠的方式:
// 处理HTML内容并注入全局字体样式 $htmlContent = str_replace("&", "&", $model[self_assessment]); $styledHtml = <<<HTML <style> body, table, td, th, p { font-family: Arial; font-size: 10pt; margin: 0; padding: 0; } </style> $htmlContent HTML; // 传入带样式的HTML \PhpOffice\PhpWord\Shared\Html::addHtml($cell, $styledHtml);
方法2:给表格/单元格强制设置默认样式
通过PHPWord的样式配置,让单元格基础样式继承Arial 10号字体(若HTML内有行内样式会覆盖此设置,建议搭配方法1使用):
// 定义单元格字体样式 $cellStyle = [ 'fontName' => 'Arial', 'fontSize' => 10 ]; // 添加带样式的单元格 $cell = $wordTable->addCell(null, $cellStyle); // 或者给整个表格设置统一的单元格默认样式 $tableStyle = ['cellStyle' => $cellStyle]; $wordTable = $section->addTable($tableStyle);
方法3:检查模板文件的基础样式
如果模板resume_tpl.docx中assess占位符所在的段落/表格本身设置了Times New Roman样式,插入的内容会继承模板格式。可以直接打开模板文件,选中assess块所在区域,修改其默认字体为Arial 10号后再重新生成文档。
内容的提问来源于stack exchange,提问作者Stern
相关产品推荐
相关产品推荐

