首页 > 解决方案 > 通过 Apps 脚本在多个 Google 幻灯片上分发长文本

问题描述

我有一个很长的文本,其中包含我想通过 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++;
  }
}

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

所以,我正在寻找一种方法来根据需要将我的文本拆分成尽可能多的幻灯片。您是否知道任何属性、方法或其他方法来了解文本框或表格单元格中文本的实际高度?

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

提前感谢您的任何想法。

标签: google-apps-scriptshapesgoogle-slides-apigoogle-slides

解决方案


推荐阅读