编译 SVG 以嵌入字形

Compile SVG to embed glyphs

我在网页中有一个 SVG,其中包含使用自定义字体呈现的文本。类似于:

<style>
  @font-face {
    font-family: MyFont;
    src: url(font-files/MyFont.woff2);
  }
</style>

<svg version="1.1"
     xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     width="55"
     height="37">
  <defs/>
  <g>
    <text fill="#000000"
          stroke="none"
          font-family="MyFont"
          font-size="50px"
          font-style="normal"
          font-weight="normal"
          text-decoration="normal"
          x="-1"
          y="32"
          text-anchor="start"
          dominant-baseline="alphabetic">
      FooBar
    </text>
  </g>
</svg>

我想将 SVG 导出为独立文件,不包含字体文件。通过嵌入字体文件(如果可能的话)或通过枚举路径和样条线。

我想将其保留为矢量图形。我不想光栅化。

没有 built-in 浏览器方法允许您这样做。

然而,有一些 third-party JS 库可用于读取字体文件和检索字形轮廓。例如:

只要您的 <text> 元素简单,将文本转换为匹配轮廓的 JS 应该相当简单。