您可以使用由 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