是否可以单独获取每个单词的文本样式



我知道可以使用getSelection().getTextRange().getTextStyle()

但是,如果我想逐字逐句地从上一张幻灯片中检索文本样式(单独获取每个单词的文本样式(,有没有办法做到这一点?

您可以遍历幻灯片的PageElements,并从每个元素中检索文本样式。

对于每个PageElement,您必须检查其类型是否将TextRange作为其属性之一(只有Shape和TextCell元素具有TextRange(。如果尝试从不包含文本的元素中检索文本,则可能会出现错误。

然后,对于您检索到的每个textRange,您可以迭代它的运行(该文本中包含的具有不同文本样式的不同段(,并检索每个运行的文本样式。

代码示例:

function getTextStyles() {
var slideId = "your-slide-id"; ID of the slide you want to retrieve text style
var presentation = SlidesApp.getActivePresentation();
var slide = presentation.getSlideById(slideId);
var pageElements = slide.getPageElements(); // Get all page elements in slide
pageElements.forEach(function(pageElement) { // Loop through all page elements in slide
if (pageElement.getPageElementType() == "SHAPE") { // Check that current page element is of type "SHAPE"
var textRange = pageElement.asShape().getText(); // Get text belonging to current page element
textRange.getRuns().forEach(function(run) { // Loop through all runs in text
var textStyle = run.getTextStyle(); // Get current row text style
console.log(textStyle);
});
};
});
}

注:

  • 上面的代码记录了幻灯片中属于Shape元素的所有文本的TextStyleTableCell元素也可以包含文本,因此如果您也想检索该信息,则必须相应地修改脚本(查看Class Table(

参考:

  • PageElements
  • 文本范围
  • 枚举PageElementType

相关内容

  • 没有找到相关文章

最新更新