您可以使用文本范围(由 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