在inkscape中嵌入字体

平面设计 字体 墨景 svg 嵌入
2022-01-16 09:00:21

有没有人知道将字体嵌入到inkscape可读的svg文件中的当前状态是什么。我发现缺少嵌入字体严重阻碍了 svg 文件的可移植性,特别是如果将文件发送给在他们的机器上没有管理员访问权限且无法安装字体的人时。

我尝试按照此链接给出的说明进行操作:

HOWTO:在 Linux Inkscape SVG 文档中嵌入字体

但一直无法让它工作,这个链接也表明它是可能的:

https://answers.launchpad.net/inkscape/+question/83618

公平地说,我正试图让它在 Windows 上运行,而不是在 linux 上运行(我现在无法访问 linux 机器)。是否有人知道或有权访问此功能正在运行的实际 svg 文件?

2个回答

您可以通过将文本转换为矢量路径来制作可移植的 SVG 文件。

选择文本对象,然后转到菜单PathObject to Path(您也可以使用 Stroke to Path,具体取决于您想要做什么)。

当然,作为矢量,文本将不再像文本那样可编辑,但这对您而言可能不如让您的 SVG 在另一端可见那么重要。

在当前版本的 Inkscape 中似乎还不能嵌入SVG 字体(另见这里的一个小例子)。

0.48 发行说明中:

存在一个已知限制,即对话框中的字形列表尚未以所选字体呈现,但仍以系统字体呈现

0.47 发行说明中有更详细的限制说明:

作为 SoC 2008 项目,JucaBlues 实现了 SVG 字体的初始解析和渲染。您可以在 Inkscape 中设计字体,但尚不支持使用它们在画布上呈现文本。我们正在等待 libpango 实现对用户字体功能的适当支持。

Firefox 或 Internet Explorer 不支持 SVG 字体的渲染,Inkscape Wiki告诉我们:

SVG2.0 可能会用WOFF代替 SVG 字体

(让我们等着看)


目前,按照本教程,我能够在 SVG 中嵌入 WOFF 字体:

<svg xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     width="100%" height="100%" viewBox="30 40 340 135">

  <title>WebFont Template for SVG</title>

  <style type="text/css"><![CDATA[
    @font-face {
        font-family: "indie_flower";
        src: url("indie_flower.woff") format("woff");
        font-weight: normal;
        font-style: normal;
    }

    text { 
        font-family: "indie_flower", serif;
        font-size: 40px;
        fill: silver;
        stroke: gray;
        stroke-width: 0.5px;
        text-anchor: middle;
    }

    textPath { 
        font-size: 35px;
        text-anchor: start;
        fill: silver;
        stroke: none;       
    }

  ]]></style>

  <text x="200" y="80">http://schepers.cc/svg-webfonts</text>  

  <path id="curve" d="M75,170 C150,140 200,140 250,160" fill="none"/>
  <text><textPath xlink:href="#curve">Google Indie Flower</textPath></text>

</svg>

字体是在这个 url之后本地复制的(从这里获取)并获得下载链接(方便地重命名为“indie_flower.woff”)。

SVG 文件使用本地字体并且渲染良好(在 Windows 8.1 下使用 Firefox 34、Chrome 39 和 Internet Explorer 11 进行测试)。使用本地字体我无法链接 SVG 文件,您必须接受屏幕截图:

铬屏幕截图

不幸的是(见上文),Inkscape目前无法渲染它并使用默认字体。

目前……让我们拭目以待。