getForegroundColor()对于幻灯片演示文稿中的所有文本都返回空

问题描述 投票:0回答:1

我正在尝试在幻灯片演示文稿中获得所有文本的颜色。我有:

 var slides = SlidesApp.getActivePresentation().getSlides();

 var pageElements = slides.reduce(function (list, slide) {
    return list.concat(slide.getPageElements());
  }, []);

  var textRanges = pageElements.reduce(function (list, pageElement) {
    if (pageElement.getPageElementType() == "SHAPE") {
      for (var i=0; i < pageElement.asShape().getText().getRuns().length; i++){
        ui.alert(pageElement.asShape().getText().getRuns()[i].getTextStyle().getForegroundColor());
      }
    }
    return list;
  }, []);

但是即使我将演示文稿中的颜色设置为红色,紫色,黄色等,颜色也似乎是空白/空。我也尝试附加“ asRgbColor()”,但这并没有提醒我。如何获得文字颜色?

javascript google-apps-script google-slides
1个回答
1
投票
  • 您想在Google幻灯片中检索文本颜色。
  • 您想使用Google Apps脚本来实现。

如果我的理解正确,那么这个答案如何?请认为这只是几个可能的答案之一。

修改点:

  • 为了使用asRgbColor()检索颜色为字符串,如何使用asHexString()
    • 或者如果要检索红色,绿色和蓝色作为整数,则也可以使用getRed()getGreen()getBlue()
  • 在这种情况下,将检索RGB颜色。

当以上几点反映到您的脚本时,它将变成如下。

修改的脚本:

请进行如下修改。

从:
var textRanges = pageElements.reduce(function (list, pageElement) {
  if (pageElement.getPageElementType() == "SHAPE") {
    for (var i=0; i < pageElement.asShape().getText().getRuns().length; i++){
      ui.alert(pageElement.asShape().getText().getRuns()[i].getTextStyle().getForegroundColor());
    }
  }
  return list;
}, []);
至:
var textRanges = pageElements.reduce(function (list, pageElement) {
  if (pageElement.getPageElementType() == "SHAPE") {
    var text = pageElement.asShape().getText().getRuns(); // Added
    for (var i=0; i < text.length; i++){ // Modified
      if (text[i].getTextStyle().getForegroundColor().getColorType() == SlidesApp.ColorType.RGB) { // Added
        list.push({text: text[i].asString(), color: text[i].getTextStyle().getForegroundColor().asRgbColor().asHexString()}); // Modified
      }
    }
  }
  return list;
}, []);
  • 在这种情况下,您可以通过textRanges检索结果。结果包括{"text":"sample","color":"#000000"}之类的对象。

参考:

如果我误解了你的问题,而这不是你想要的方向,我深表歉意。

© www.soinside.com 2019 - 2024. All rights reserved.