You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Holoviews中hv.Text自定义字体在Word中不生效问题求助

解决Holoviews生成SVG在Word中字体不生效的问题

核心原因

SVG文件默认仅引用字体名称,不会嵌入字体的字形数据,Word无法加载外部字体定义,导致显示默认字体。

可行解决思路

1. 在SVG中嵌入字体数据

修改代码,让Bokeh导出SVG时嵌入字体的字形信息,确保Word能直接识别:

import holoviews as hv
hv.extension('bokeh')
from bokeh.io import export_svg
from bokeh.resources import Resources

plot = hv.Curve([(0, 1), (2, 1)]) * hv.Text(1, 2, 'Test').options(text_font='Times New Roman')

plot_state = hv.renderer('bokeh').get_plot(plot).state
plot_state.output_backend = 'svg'
# 配置资源,开启字体嵌入
resources = Resources(mode='inline', embed_fonts=True)
export_svg(plot_state, filename='test.svg', resources=resources)

导出的SVG会包含Times New Roman的字形数据,粘贴到Word后字体即可正常显示。

2. 转换为EMF格式插入Word

Word对EMF(增强型图元文件)的字体兼容性更好,可通过Inkscape转换SVG为EMF:

inkscape test.svg --export-type=emf --export-filename=test.emf

将生成的EMF文件插入Word,字体样式可完美保留。

3. Word内手动修改字体

若仅处理少量图表,可在Word中操作:

  • 插入SVG后,右键选择「编辑图片」进入绘图编辑模式
  • 选中目标文本,直接在字体栏设置为Times New Roman

内容的提问来源于stack exchange,提问作者25334

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 08:32:49