我正在寻找一种方法来直接在canvas元素上绘制多行文本而不使用HTML/DOM。最好的情况是找到一个JavaScript库,但是我的谷歌搜索尝试没有提供任何东西。如何在canvas元素中对文本进行丰富排版?
理想的情况下,将具有以下功能:
- 能够设置段落样式:首行缩进,行间距等
- 快速可靠地实现了与校准/对齐文字环绕算法通过HTML或降价等
,我希望能找到一个解决方案,就是多一点先进的T一些简化的子集选择
有谁知道任何可能的解决方案?看起来这是一件疯狂的事情,但我认为我有一个相当好的理由!我正在评估Ejecta作为一个可能的iOS环境来制作一个跨平台的游戏,它依赖于文本和美丽的排版,所以HTML和DOM不可用。 (We主要制作基于文本的游戏)
此:https://github.com/bramstein/typeset包含了一个很好的换行算法,包括各种文本对齐选项,一个连字符,并利用帆布的'measureText'的函数,尽管输出为“span”。可以使用,但与基本线渲染器结合使用。 –
我们支持[fabric.js](http://fabricjs.com)中的多行文本渲染以及字体系列,文本对齐,文本修饰,文本描边等。没有内置自动换行,但您应该能够扩展'fabric.Text'类并从那里开始工作。 – kangax
谢谢@ kangax,看起来很强大! –