通过Apps脚本在多个Google幻灯片上分发长文本

时间:2019-01-09 12:00:55

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

我有一个长长的文本,上面有要通过Apps脚本添加到Google幻灯片的列表项。由于文本的长度和单个列表项的长度可能不同,因此我需要创建多个幻灯片以覆盖整个文本。

为此,我想执行以下操作:

  1. 如果剩余文字,请创建一个新的幻灯片,并使用一个文本框(或表格)覆盖整个页面
  2. 将列表项添加到容器中,只要它们仍然适合
  3. 如果还有文字,请重新制作一张幻灯片,直到所有文字都放好

但是,这不起作用:

  var slides = SlidesApp.openById("...");
  var pageHeight = slides.getPageHeight();
  var stringList = ["Long text 1", "Long text 2", "Long text 3"];
  var page = 0;

  while (stringList.length > 0) {
    var container = slides.getSlides()[page].getShapes()[0]; //some text box
    container.getText().clear();

    while (container.getHeight() < pageHeight && stringList.length > 0) {
      container.getText().appendText(stringList.shift());
    }
    page++;
  }
}

现在我遇到了问题,我没有找到任何方法来获取元素的 actual 高度(文本消耗)来检查文本是否仍然适合页面容器。该脚本将永远填充单个文本框,因为getHeight()会忽略文本的高度。表格单元格随文本一起增长,但似乎只有它们的 minimumHeight

因此,我正在寻找一种将文本分成所需幻灯片的方法。您是否知道用于了解文本框或表格单元格中文本实际高度的任何属性,方法或其他方法?

当然,对于Google Doc来说,这根本没有问题,但是不幸的是,我还需要添加一些带有形状,背景等的样式,以了解为什么这不是一种选择。列表项来自Google电子表格,每项一行。

预先感谢您的任何想法。

0 个答案:

没有答案