当涉及到在AWS Lambda中使用FabricJS / node-canvas获取自定义字体时,我遇到了困难。字体正在加载,但当它们渲染到画布时,它们会完全损坏,并显示在单行上,而不是多行上。字母间距(字距调整)也被弄乱了,问题可能是因为这个原因...?
在浏览器中:

服务器端(AWS Lambda + node-canvas + FabricJS)

有没有人甚至对这里发生的事情有最模糊的想法?我尝试过更改charSpacing,但这不起作用:(我知道可以在浏览器中看到的内容的精确副本可以在节点画布中呈现,因为另一个服务正在使用FabricJS做同样的事情……
我将永远感激在这方面的任何帮助!并提前感谢!
凯尔
基于另一个SO问题(character width calculation wrong with some font which can make auto indent),我尝试了fabric.util.clearFabricFontCache();,但没有任何效果。
Node-canvas版本: 2.6.1
FabricJS版本: 3.6.3
通过消除过程-我相信textbox font / font系列详细信息正在缓存中。我已经从加载中删除了自定义字体,并且我仍然在渲染自定义字体...我在loadFromJSON之后使用了clearFabricFontCache(),但它仍然显示自定义字体!
发布于 2020-10-13 09:05:36
我也在同样的问题上。我遵循了这种方法:
fabric.nodeCanvas.registerFont(__dirname + '/test/fixtures/Ubuntu-Regular.ttf', {
family: 'Ubuntu', weight: 'regular', style: 'normal'
});一切都正常了。
参考文献:Custom fonts in Fabric on Node
https://stackoverflow.com/questions/62476433
复制相似问题