PhpWord中如何修改图表标题与数据标签的字体样式
PhpWord设置饼图标题、数据内容字体样式实现方法
官方公开的样式文档未覆盖图表文本样式的配置说明,当前版本PhpWord已原生支持该配置,无需修改底层源码,具体配置方式如下:
- 标题样式:
setTitle()方法支持第二个参数传入字体配置数组,规则和普通文本字体配置一致,可自定义字体名、字号、颜色、加粗、斜体等属性。 - 数据标签样式:在
setDataLabelOptions()的配置项中新增font键,传入对应字体配置数组,即可控制饼图上显示的百分比、数值、分类名等标签的样式。 - 图例样式:调用
setLegendFont()方法传入字体配置数组,可自定义图例的文本样式。
注意:上述方法要求PhpWord版本≥0.18,低版本无对应API,需先升级依赖后使用。如果需要复用全局预设样式,直接将提前定义好的样式数组传入对应参数即可,无需额外渲染处理。
调整后的饼图生成方法代码参考:
public function createPieChart($cats,$values,$title){ $chart = new Chart('pie',$cats,$values); // 按需自定义各部分字体样式 $titleFont = [ 'name' => 'Microsoft YaHei', 'size' => 14, 'bold' => true, 'color' => '333333' ]; $dataLabelFont = [ 'name' => 'Microsoft YaHei', 'size' => 10, 'color' => '000000' ]; $legendFont = [ 'name' => 'Microsoft YaHei', 'size' => 10, 'color' => '666666' ]; $chart->getStyle() ->setTitle($title, $titleFont) ->setShowLegend(true) ->setLegendPosition('b') ->setLegendFont($legendFont) ->setColors($this->colors) ->setWidth(Converter::inchToEmu(3)) ->setHeight(Converter::inchToEmu(3)) ->setDataLabelOptions([ 'showCatName' => false, 'showVal' => false, 'showPercent' => true, 'font' => $dataLabelFont ]); return $chart; }
内容的提问来源于stack exchange,提问作者blomfer
相关产品推荐
相关产品推荐

