Вы можете редактировать и стилизовать текст, используя текстовые диапазоны , представленные типом TextRange
. TextRange
представляет собой фрагмент текста внутри фигуры или ячейки таблицы. Вызов метода getText()
для фигуры или ячейки таблицы возвращает текстовый диапазон, охватывающий весь текст.
Если вы используете методы, которые изменяют то, как текст вписывается в фигуру, все параметры автоподгонки, примененные к фигуре, деактивируются.
Использование текстовых диапазонов
У текстового диапазона есть два индекса, которые разграничивают сегмент текста, охватываемый этим диапазоном: начальный индекс и конечный индекс . Эти индексы можно определить с помощью функций getStartIndex()
и getEndIndex()
.
Чтобы прочитать содержимое текстового диапазона, используйте функции asString()
или asRenderedString()
.
Чтобы извлечь поддиапазон из текстового диапазона, используйте функцию getRange()
.
Следующий скрипт создаёт текстовое поле на первом слайде и устанавливает его текстовое содержимое в значение «Hello world!». Затем он извлекает поддиапазон, охватывающий только слово «Hello».
Диапазон текста, возвращаемый фигурой или ячейкой таблицы, всегда будет охватывать весь текст, даже если текст вставлен и удалён. Таким образом, приведенный выше пример создаёт следующие записи журнала:
Start: 0; End: 13; Content: Hello world! Start: 0; End: 5; Content: Hello
Вставка и удаление текста
Вы также можете вставлять и удалять текстовые фигуры и ячейки таблиц, используя текстовые диапазоны.
-
insertText()
иappendText()
позволяют вставлять текст. -
setText()
заменяет текст текстового диапазона предоставленным текстом. -
clear()
удаляет текст из текстового диапазона.
Следующий скрипт демонстрирует использование этих функций:
Этот скрипт создаёт текстовое поле на первом слайде и устанавливает его текстовое содержимое в значение «Hello world!». Затем он удаляет символы с 6 по 11 («world») и вставляет вместо них текст «galaxy» в индексе 6. В приведённом выше примере создаётся следующий лог-запись:
Start: 0; End: 14; Content: Hello galaxy!
Поиск и замена
Используйте функцию replaceAllText()
в презентации или на странице, чтобы выполнить глобальный поиск и замену по всей презентации или на определенной странице.
Функция find()
для TextRange возвращает вхождения строки в заданном диапазоне. Её можно использовать вместе с setText()
для поиска и замены в фигуре или ячейке таблицы.
Абзацы, пункты списка и строки
TextRange
предоставляет функции для возврата полезных коллекций текстовых сущностей. Некоторые из этих функций включают:
-
getParagraphs(),
возвращает все абзацы, перекрывающие текстовый диапазон. Абзац — это последовательность текста, которая завершается символом новой строки "\n". -
getListParagraphs(),
который возвращает элементы списка в текущем текстовом диапазоне. - Функция
getRuns(),
возвращает фрагменты текста, перекрывающие текущий текстовый диапазон. Текстовый фрагмент — это фрагмент текста, все символы которого имеют одинаковый стиль.
Оформление текста
Стиль текста определяет отображение текстовых символов в презентации, включая шрифт, цвет и гиперссылки.
Функция getTextStyle()
текстового диапазона предоставляет объект TextStyle
, используемый для стилизации текста. Объект TextStyle
охватывает тот же текст, что и его родительский TextRange
.
В примере выше сначала создаётся текстовое поле на первом слайде и задаётся его содержимым «Hello». Затем добавляется текст «world!». Добавленный текст выделяется жирным шрифтом, ссылается на www.example.com
и имеет красный цвет.
При чтении стилей функция возвращает null, если диапазон содержит несколько значений стиля. Таким образом, приведённый выше пример создаёт следующие лог-записи:
Text: Hello; Bold: false Text: world!; Bold: true Text: Hello world!; Bold: null
Существует множество других стилей, которые можно применять к тексту. Подробнее см. в справочной документации TextStyle
.
Оформление абзаца
Стили абзацев применяются ко всем абзацам и включают такие параметры, как выравнивание текста и межстрочный интервал. Функция getParagraphStyle() в TextRange
предоставляет объект ParagraphStyle
для стилизации всех абзацев, перекрывающих родительский текстовый диапазон.
В следующем примере создается текстовое поле на первом слайде с четырьмя абзацами, затем первые три абзаца выравниваются по центру.
Оформление списка
Подобно ParagraphStyle
, ListStyle
можно использовать для стилизации всех абзацев, которые перекрывают родительский текстовый диапазон.
В приведенном выше примере на первом слайде создается текстовое поле, содержащее четыре абзаца: второй абзац имеет одинарный отступ, а третий — двойной. Затем ко всем абзацам применяется предустановленный список. В заключение регистрируется уровень вложенности каждого абзаца. (Уровень вложенности определяется количеством символов табуляции перед текстом абзаца.) Таким образом, приведенный выше скрипт создает следующие записи в журнале:
Paragraph 1's nesting level: 0 Paragraph 2's nesting level: 1 Paragraph 3's nesting level: 2 Paragraph 4's nesting level: 0