Работа с текстом
Методы lcd.print и lcd.printaligned выводят текст. Текст печатается выбранным шрифтом. Это значит, что в проекте должен быть хотя бы один файл шрифта (о том, как добавить файл, см. отдельный раздел), и этот шрифт нужно выбрать, прежде чем что-либо печатать.
Для выбора шрифта служит метод lcd.setfont:
romfile.open("Tibbo-5x7(VP).bin")
lcd.setfont(romfile.offset)
Учтите, что lcd.setfont вернёт 1 - NG, если передать ему неподходящий файл!
После успешного выбора шрифта свойства только для чтения lcd.fontheight и lcd.fontpixelpacking сообщат максимальную высоту символов этого шрифта и способ упаковки пиксельных данных в файле шрифта. Смысл первого свойства очевиден. Смысл второго станет понятен после (и если) вы прочтёте раздел Формат файла растрового шрифта. Если читать его не хочется, ничего страшного - можно сразу перейти к итогу:
Шрифты могут кодироваться по горизонтали или по вертикали, а lcd.fontpixelpacking покажет, какой тип шрифта выбран. Это важно только для дисплеев с lcd.bitsperpixel < 8. Если у дисплея lcd.bitsperpixel > 8, то тип шрифта не имеет значения. Если же он < 8, лучше выбрать шрифт, у которого lcd.fontpixelpacking равно lcd.pixelpacking (зависит от выбранного контроллера/панели). Когда эти два свойства «согласованы», скорость работы выше. Шрифт, «перпендикулярный» дисплею, тоже будет работать, но печать текста может заметно замедлиться.
Для каждого шрифта Tibbo обычно предлагает две версии, например «Tibbo-5x7(V).bin» и «Tibbo-5x7(H)»: V означает «вертикальный» (vertical), а H - «горизонтальный» (horizontal).
Текст без выравнивания
Когда шрифт выбран, можно печатать. Для этого служит метод lcd.print. Он всегда выводит одну строку. На вывод текста влияют два свойства - lcd.textorientation и lcd.texthorizontalspacing. Опорная точка текста находится в левом верхнем пикселе вывода. Аргументы x и y метода lcd.print задают этот угол, и текст поворачивается «вокруг» этого же пикселя. Например:
lcd.print("Text",30,10)
lcd.textorientation=PL_LCD_TEXT_ORIENTATION_180
lcd.texthorizontalspacing=4
lcd.print("Text",30,10)

Метод lcd.print возвращает полную ширину выведенного текста в пикселях. Это бывает очень полезно. Вот пример, где вокруг текста рисуется рамка, и размер рамки должен получиться «в самый раз»:
x=lcd.print("Text",30,10)
lcd.rectangle(28,8,30+x+1,10+lcd.fontheight+1)
Иногда нужно узнать ширину текста до его фактического вывода. Метод lcd.getprintwidth сообщит, сколько пикселей текст займёт по горизонтали (помните, что высота текста равна lcd.fontheight). В следующем примере текст выравнивается по правому краю экрана. Для этого нужно знать, насколько он будет широким:
x=lcd.getprintwidth("Text")
x=lcd.print("Text",lcd.width-x,10)
Текст с выравниванием
Метод lcd.printaligned выводит текст внутри заданной прямоугольной области. То, как будет напечатан текст, определяют четыре свойства - lcd.textorientation, lcd.textalignment, lcd.texthorizontalspacing и lcd.textverticalspacing. Чтобы текст поместился в целевую область, объект lcd. при необходимости разбивает его на несколько строк. Отображается только тот текст, который помещается в область. Собственные переносы строк можно добавлять символом ` (ASCII-код 96). Например:
lcd.textverticalspacing=2
lcd.textalignment=PL_LCD_TEXT_ALIGNMENT_BOTTOM_RIGHT
lcd.printaligned("Multi-line text",0,0,35,33)

Учтите, что lcd.printaligned возвращает число полученных строк текста.