【问题标题】:Getting title of slide in Google Apps Script在 Google Apps 脚本中获取幻灯片的标题
【发布时间】:2017-03-12 00:15:28
【问题描述】:

我正在尝试编写一个谷歌应用程序脚本,该脚本获取每张幻灯片的幻灯片标题(就像它们在母版幻灯片中一样)并将它们放在幻灯片 2 上格式良好的目录中。

不一定非要用apps脚本来完成,但这是我能想到的最好方法。

function readPageElementIds(presentationId, pageId) {
  var response = Slides.Presentations.get(
      presentationId);
  Logger.log(response.slides)
  for (var i = 0; i < response.slides.length; i++) {
    var slide = response.slides[i].pageElements;
    for (var j = 0; j < slide.length; j++) {
      if (slide[j].shape) {
        var texts = slide[j].shape.text.textElements;
        for (var k = 0; k < texts.length; k++) {
          if (texts[k].autoText) {
             Logger.log(texts[k].autoText.content);
          }
        }
      }
    }
  }
}

是的,有很多 for 循环,我不知道该怎么做。

【问题讨论】:

  • 我也可以很容易地为每个标题的某些属性添加某种标志(例如稍微浅一点的黑色)。这是我想到的事情之一,但我完全不知道如何实现它。

标签: javascript google-apps-script google-api google-slides-api


【解决方案1】:

这相当接近。你缺少的东西:

  • 您正在迭代所有形状,而不仅仅是标题。为此,请过滤 shape.placeholder.type 属性。您只想查看具有TITLECENTERED_TITLE 占位符类型的形状。

  • autoText 文本元素比较少见。您的大部分文本将在 TextRun 文本元素中

这段代码可以工作:

function readPageElementIds(presentationId, pageId) {
  var response = Slides.Presentations.get(
      presentationId);
  Logger.log(response.slides)
  for (var i = 0; i < response.slides.length; i++) {
    var slide = response.slides[i].pageElements;
    for (var j = 0; j < slide.length; j++) {
      if (slide[j].shape && slide[j].shape.placeholder
          && (slide[j].shape.placeholder.type == 'TITLE'
              || slide[j].shape.placeholder.type == 'CENTERED_TITLE')) {
        var texts = slide[j].shape.text.textElements;
        var shapeText = "";
        for (var k = 0; k < texts.length; k++) {
          if (texts[k].autoText) {
             shapeText += texts[k].autoText.content;
          }
          if (texts[k].textRun) {
             shapeText += texts[k].textRun.content;
          }
        }
        Logger.log(shapeText);
      }
    }
  }
}

【讨论】:

  • apps 脚本的文档每次都让我(以一种糟糕的方式)。谢谢!
猜你喜欢
  • 1970-01-01
  • 2019-01-23
  • 2021-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多