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

Javascript 幻灯片演示文稿中所有文本的getForegroundColor()返回空,javascript,google-apps-script,google-slides,Javascript,Google Apps Script,Google Slides,我试图在幻灯片演示中获得所有文本的颜色。我有: var slides = SlidesApp.getActivePresentation().getSlides(); var pageElements = slides.reduce(function (list, slide) { return list.concat(slide.getPageElements()); }, []); var textRanges = pageElements.reduce(functi

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

 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;
  }, []);
var slides=SlidesApp.getActivePresentation().getSlides();
var pageElements=slides.reduce(函数(列表、幻灯片){
return list.concat(slide.getPageElements());
}, []);
var textRanges=pageElements.reduce(函数(列表,pageElement){
if(pageElement.getPageElementType()==“形状”){
对于(var i=0;i
但是颜色似乎是空的/空白的,尽管我已经将演示文稿中的颜色设置为红色、紫色、黄色等。我还尝试添加“asRgbColor()”,但这并没有提醒我什么。如何获得文本颜色?

  • 您希望检索Google幻灯片中的文本颜色
  • 您希望使用谷歌应用程序脚本实现这一点
如果我的理解是正确的,那么这个答案呢?请把这看作是几个可能的答案之一

修改点:
  • 要使用
    asRgbColor()
    检索颜色作为字符串,使用
    asHexString()
    如何?
    • 或者,如果要检索红色、绿色和蓝色作为整数,也可以使用
      getRed()
      getGreen()
      getBlue()
  • 在这种情况下,将检索RGB颜色
当上述各点反映到脚本中时,它将变成如下所示

修改脚本: 请修改如下

发件人:
var textRanges=pageElements.reduce(函数(列表,pageElement){
if(pageElement.getPageElementType()==“形状”){
对于(var i=0;i
致:
var textRanges=pageElements.reduce(函数(列表,pageElement){
if(pageElement.getPageElementType()==“形状”){
var text=pageElement.asShape().getText().getRuns();//已添加
对于(var i=0;i
  • 在这种情况下,您可以通过
    textRanges
    检索结果。结果包括像
    {“text”:“sample”,“color”:“#000000”}
    这样的对象
参考资料:
如果我误解了你的问题,而这不是你想要的方向,我道歉。

  • 您希望检索Google幻灯片中的文本颜色
  • 您希望使用谷歌应用程序脚本实现这一点
如果我的理解是正确的,那么这个答案呢?请把这看作是几个可能的答案之一

修改点:
  • 要使用
    asRgbColor()
    检索颜色作为字符串,使用
    asHexString()
    如何?
    • 或者,如果要检索红色、绿色和蓝色作为整数,也可以使用
      getRed()
      getGreen()
      getBlue()
  • 在这种情况下,将检索RGB颜色
当上述各点反映到脚本中时,它将变成如下所示

修改脚本: 请修改如下

发件人:
var textRanges=pageElements.reduce(函数(列表,pageElement){
if(pageElement.getPageElementType()==“形状”){
对于(var i=0;i
致:
var textRanges=pageElements.reduce(函数(列表,pageElement){
if(pageElement.getPageElementType()==“形状”){
var text=pageElement.asShape().getText().getRuns();//已添加
对于(var i=0;i
  • 在这种情况下,您可以通过
    textRanges
    检索结果。结果包括像
    {“text”:“sample”,“color”:“#000000”}
    这样的对象
参考资料:

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

@Tedinoz谢谢你编辑它。我没有注意到这件事。谢谢。@Tedinoz谢谢你编辑它。我没有注意到这件事。非常感谢。
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;
}, []);