首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >toSVG wrongText定位系统的研制

toSVG wrongText定位系统的研制
EN

Stack Overflow用户
提问于 2017-09-28 12:00:22
回答 2查看 301关注 0票数 3

我尝试在一个节点服务器上使用来创建svgs。我的问题是画布的toSVG()函数不能正确识别字体,它根据错误的字体计算字符位置。

旧版本:

节点: 6.10

代码语言:javascript
复制
"canvas": "1.6.5"
"fabric": "1.7.14"

AFAIK:较新的'1.7.*‘版本的织物,也不计算正确的位置。

它是为PNG工作,根据本教程(织物-介绍-第4部分)。

代码语言:javascript
复制
canvas.contextContainer.addFont(font);
canvas.contextTop.addFont(font);

生成PNG或SVG:

代码语言:javascript
复制
canvas.toDataURL({
  format: 'png',
});
canvas.toSVG();

并且PNG输出的位置是正确的(参见示例),但是使用toSVG()不能正确地应用(自定义)字体。

在这个示例中,您可以看到定制字体没有正确显示(正确的字体用于显示,因为字体安装在我的当前系统上,而不是安装在创建SVG的节点服务器上!)

我的下一个选择是比较toDataURL(...)和IText toSVG()的源代码,但我不确定这在任何方面是否有帮助。

由于生成SVG的函数是在AWS中执行的,所以我无法在Linux操作系统(AFAIK)中安装字体。

您有什么想法吗,或者我错过了什么教程或bug报告?是否有类似contextTop或contextContainer的内容,可以添加自定义字体,从而将它们应用到toSVG()函数中?

我感谢各位提出的建议。

示例:解决这一问题

PS:在浏览器中,toSvg()知道字体,因为浏览器加载它们,因此定位是正确的!

也被问到:https://groups.google.com/forum/#!topic/fabricjs/mff7Pr4fkGY

Bug-报告:https://github.com/kangax/fabric.js/issues/4355

复制示例:https://github.com/willKo/BugTest

EN

回答 2

Stack Overflow用户

发布于 2017-09-28 13:58:54

没有访问目标字体文件的权限,任何软件都无法正确定位字体符号。每种字体都有不同的度量和定位规则,它们在非常复杂的opentype表中进行描述,这些表是字体文件本身的一部分。

票数 0
EN

Stack Overflow用户

发布于 2017-10-10 17:19:41

到目前为止,包括字体都起作用了。看见

https://github.com/kangax/fabric.js/issues/4355

或例如在

https://github.com/willKo/BugTest/tree/includeFontsInDOM

不幸的是,定位仍然不正确。可能连接到节点-画布。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46468609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档