问题:在用 Draw.io 绘图后导出 svg 文件插入 Word 或其他情景下,对文字的字体设置无效。
描述:此时文字往往会显示为默认字体,在对文字字体要求比较严格的情景下,这非常糟糕!
解决方案:如果退一步,可以在导出时选择嵌入字体,这样文字会以png图片形式保存到svg中。
尽管这样已足够清晰到可以应对绝大部分情景,但是,这种方案非常不优雅!
完全违背矢量图的矢量精神!
原因:经分析,Draw.io 会使用一种名为“Helvetica”的默认字体,尽管内部设置了新的字体,但外部仍会使用这种“非系统自带字体”,这就导致 Word 等依赖精确字体匹配的环境无法正常渲染。
解决方案(符合矢量精神版):对症下药即可,如把 svg 文件中所有“Helvetica”字体替换为任意系统自带字体即可(不会影响已设置字体)。
AI 个 Python 脚本:
# 保存为fix.py,然后运行: python fix.py yourfile.svg
import re, sys
with open(sys.argv[1], 'r', encoding='utf-8') as f:
content = f.read()
content = re.sub(r'Helvetica', 'Arial', content, flags=re.IGNORECASE)
with open(sys.argv[1].replace('.svg', '_fixed.svg'), 'w') as f:
f.write(content)
print("修复完成!")


被折叠的 条评论
为什么被折叠?



