使用 Google App 脚本将文本框与 Google 幻灯片的右下角对齐

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

经过一番苦思冥想,我来到 Stack Overflow 寻求帮助!我正在使用 Google App 脚本自动将今天的日期添加到我的所有幻灯片中。我的功能有效,但它将日期添加到幻灯片的中心 - 我找不到任何选项可以让我将其放置在幻灯片的右下角。 AlignPosition 似乎只有三个参数——CENTER、HORIZONTAL CENTER、VERTICAL CENTER,所以我不确定是否有替代路径使用它?


function myFunction() {
 var date = new Date();
 var months = ["January", "February", "March", "April", "May", "June", 
 "July", "August", "September", "October", "November", "December"]
 var slide = SlidesApp.getActivePresentation().getSlides()[0];
 var shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 300, 200, 300, 60);
 var textRange = shape.getText();
 textRange.setText(months[date.getMonth()]+' '+date.getDate()+', '+date.getFullYear())
}

此功能有效,但它再次将文本对齐到幻灯片的中间。

javascript google-apps-script alignment
1个回答
0
投票

关于你的问题

I can't find any option that will let me place it in the bottom right of the slide.
,从你的展示脚本来看,我相信你的目标如下。

  • 您想要将宽度为 300 pt、高度为 60 pt 的形状放入幻灯片的右下角。
  • 您想将文本放在幻灯片的右下角。

既然如此,下面的修改如何?

修改后的脚本:

function myFunction() {
  var date = new Date();
  var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
  var s = SlidesApp.getActivePresentation();
  var slide = s.getSlides()[0];
  var pageWidth = s.getPageWidth();
  var pageHeight = s.getPageHeight();
  var shapeWidth = 300; // This is from your script.
  var shapeHeight = 60; // This is from your script.
  var left = pageWidth - shapeWidth;
  var top = pageHeight - shapeHeight;
  var shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, left, top, shapeWidth, shapeHeight);
  shape.setContentAlignment(SlidesApp.ContentAlignment.BOTTOM);
  var textRange = shape.getText();
  textRange.setText(months[date.getMonth()] + ' ' + date.getDate() + ', ' + date.getFullYear());
  textRange.getParagraphStyle().setParagraphAlignment(SlidesApp.ParagraphAlignment.END);
}

测试:

运行该脚本,得到如下结果。为了使结果具有较高的可读性,我添加了幻灯片的边框颜色和形状。实际结果中,没有显示边框。

参考资料:

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