使用由 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 搭配使用,以便在形状或表格单元格中执行查找和替换操作。
段落、列表项和 run
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