Я ищу способ рисовать многострочный текст на элементе canvas непосредственно без использования HTML/DOM. Лучшим сценарием будет поиск библиотеки JavaScript, но мои попытки Google не придумали ничего.Как сделать богатый набор текста для текста в элементе холста?
В идеале было бы иметь следующие функциональные возможности:
- Возможность задать стили абзаца: первой строки абзаца, межстрочный интервал и т.д.
- Быстрая и надежная реализация алгоритмов текста оборачивания с выравнивающей/обоснование варианты
- форматирование текста через некоторое упрощенное подмножество HTML или Markdown и т.д.
Я в надежде найти решение, которое немного более продвинутый т han this tutorial и this answer, которые просто касаются базового слова/линии упаковки.
Кто-нибудь знает о любом возможном решении? Может показаться, что это сумасшедшая вещь, но думаю, что у меня есть довольно хорошее оправдание! Я оцениваю Ejecta как возможную среду iOS, чтобы сделать кросс-платформенную игру, которая опирается на текст с красивой типографикой, поэтому HTML и DOM недоступны. (We сделать в основном текстовые игры)
Это: https://github.com/bramstein/typeset содержит хорошую линию нарушение алгоритма, включая различные варианты выравнивания текста, в Hyphenator, и использует 'measureText' холста функция, хотя выходы как 'span'. Можно использовать, хотя в сочетании с базовым рендерером линии. –
Мы поддерживаем многострочный рендеринг текста в [fabric.js] (http://fabricjs.com), а также семейство шрифтов, выравнивание текста, текстовое оформление, штрих текста и т. Д. Нет встроенной автоматической упаковки, но вы должны уметь расширять класс 'fabric.Text' и работать оттуда. – kangax
Спасибо @kangax, выглядит довольно мощно! –