您可以使用由 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”),并在索引 6 处插入文本“galaxy”。上述示例会生成以下日志语句:
Start: 0; End: 14; Content: Hello galaxy!
搜索和替换
您可以在演示或页面中使用 replaceAllText() 函数,在整个演示或特定页面中执行全局查找和替换操作。
TextRange 的 find() 函数会返回范围内的字符串实例。它可以与 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 参考文档。
段落样式
段落样式适用于整个段落,包括文本对齐方式和行间距等。TextRange 中的 getParagraphStyle() 函数提供了一个 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