Fabric JS解析器的SVG文本对齐问题

时间:2014-11-06 11:55:32

标签: javascript svg fabricjs

我正在使用以下

加载SVG
fabric.loadSVGFromURL

然而,当加载到画布中时,SVG中的文本被向上推,而不是在生成SVG时按照设置垂直对齐。

svg代码如下:

<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
  <svg version="1.1"
 id="Layer_1" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg"
 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="62.8 -28.2 502.6 480"
 enable-background="new 62.8 -28.2 502.6 480" xml:space="preserve">
    <g id="Layer-border">
        <path id="border" fill="#363F5B" d="M62.8-28.2v480h502.6v-480H62.8L62.8-28.2z"/>
    </g>
    <g id="Layer-main">
        <rect id="main" x="72" y="-19.2" fill="#BF4D9C" width="484.9" height="463.1"/>
    </g>
    <g id="Layer-text">
        <text transform="matrix(1 0 0 1 79.5781 339.4394)" fill="#FFFFFF" font-family="'ApexLake-Regular'" font-size="427.7094">K</text>
    </g>
 </svg>

在浏览器中链接到结果:https://db.tt/A2VCCfhm

加载到画布时链接到结果:https://db.tt/RqNeO3Ku

1 个答案:

答案 0 :(得分:1)

我不知道你是不是在github上的@rocknpivot。 仅针对具有最新版本FabricJs的记录,此对齐问题已得到解决。 这是2014年11月5日修正的1/4字体大小的错位。 无论如何,在您发布的问题中,用户可以看到一个美丽的&#34; K&#34;用特定字体呈现的字母。 您发布的SVG中不存在该字体,因此该svg将永远不会像截图中那样呈现。

link: http://jsfiddle.net/asturur/vwq7h766/4/

无论如何,这是一个更实用的例子。 你看到一个稍微左偏移的错误,但我认为自从小提琴的创建以来字体有所改变,我没有更多的原始文件,我无法重现它。

这里是工作小提琴的截图

https://cloud.githubusercontent.com/assets/1194048/4953012/586b3af8-667b-11e4-93ff-9542f5d61b3d.png