出于安全原因,嵌入的 svg 图像必须是独立图像。您需要通过嵌入所有外部资源来使 svg 成为“独立”(在我们的例子中是字体定义)进入其中。
要将字体嵌入到 svg 文件中,请按照下列步骤操作:
1.生成base64嵌入字体url
下载您要使用的字体文件.ttf
扩大。
我们需要将嵌入式作为数据 URI 方案 https://en.wikipedia.org/wiki/Data_URI_scheme.
将此字体文件上传到任何在线 Data URI 转换器,
我在用着dopiaza.org 数据 URI 生成器 https://dopiaza.org/tools/datauri/index.php为简单起见(或者您可以使用任何文件到 Base64 转换器工具,只要您遵循相同的 data-uri 生成模式)。
将字体文件上传到转换器。确保Use base64 encoding
已检查。由于我们要嵌入字体,所以选择显式指定 mime 类型并将 mime 类型设置为application/font-woff
点击“生成数据 URI”并让该工具完成工作,它应该为您提供以下数据 URI 格式:
data:<mime-type>;base64,<the_encoded_font_as_base64_content>
在我们使用字体作为 Mime-Type 的例子中,它将是:
data:application/font-woff;base64,AAEAAAATAQAABAAwR0RFRv4pBjw....
2. 在 SVG 文件中声明嵌入字体
编辑使用该字体的 SVG 文件。在标签内声明@font-face。将上面生成的 data-uri URL 放入src: url("<generated_data_uri>")
<svg>
<defs>
<style>
@font-face {
font-family: Inter;
src: url("data:application/font-woff;base64,AAEAAAATAQAABAAwR0RFRv4pBjw....")
}
</style>
</defs>
<!-- The rest of your SVG content goes here -->
</svg>
就这样。