3

我正在寻找一种不使用 HTML/DOM 直接在画布元素上绘制多行文本的方法。最好的情况是找到一个 JavaScript 库,但我的谷歌搜索没有找到任何结果。

理想情况下,它将具有以下功能:

  • 能够设置段落样式:首行缩进、行距等。
  • 具有对齐/对齐选项的文本换行算法的快速且稳健的实现
  • 通过 HTML 或 Markdown 等的一些简化子集来格式化富文本。

我希望找到一个比本教程和这个仅处理基本字/行换行的答案更高级的解决方案。

有谁知道任何可能的解决方案?这似乎是一件疯狂的事情,但我认为我有一个相当好的理由!我正在评估Ejecta作为一个可能的 iOS 环境,以制作一个依赖文本和漂亮排版的跨平台游戏,因此 HTML 和 DOM 不可用。(我们主要制作基于文本的游戏)

4

2 回答 2

1

正如@kangax 已经指出的那样:fabric.js支持多行文本渲染以及字体系列、文本对齐、文本装饰、文本笔划等。没有内置的自动换行,但您应该能够扩展fabric.Text类并从那里工作。访问http://fabricjs.com/了解更多详情。

于 2020-07-05T17:46:45.897 回答
-1

正如您所发现的,Canvas 具有最少的文本支持。

要获得富文本功能,请查看 TinyMCE 的源代码。

TinyMCE 是一个开源的、广泛使用的基于 javascript 的文本编辑器,正在积极开发中。它具有出色的功能,它的广泛使用和积极的开发使得大量调试和功能丰富的代码成为可能。

你可以从这个框架开始,拉出你需要在画布中使用的部分。

该项目可在此处获得: https ://github.com/tinymce/tinymce

于 2013-06-22T13:55:33.953 回答