如何在App脚本中将链接附加到形状或文本框?

时间:2019-10-06 00:17:42

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

我知道如何为幻灯片添加形状,但是我知道在Google幻灯片中,您可以链接另一张幻灯片,以在单击该文本框后显示。是否可以在App Script中创建形状,然后将链接附加到该形状?

我看过API文档,对是否可行感到困惑。

这是表格/幻​​灯片的附件。

我需要做的是在我创建的“添加到”菜单上按下按钮时,要在Google幻灯片中创建幻灯片,并使用表格中的信息。我想创建一个TextBox,并在单击它时将其链接到“幻灯片放映”中的另一张幻灯片。我只是希望一切都自动化。

如果可能,如何将其应用于创建的形状?

var elementId = 'MyTextBox_001';
  var pt350 = {
    magnitude: 350,
    unit: 'PT'
  };
  var requests = [{
    createShape: {
      objectId: elementId,
      // tried linkUrl: "link";
      shapeType: 'TEXT_BOX',
      elementProperties: {
        pageObjectId: "slide_001_001",

        size: {
          height: pt350,
          width: pt350
        },
        transform: {
          scaleX: 1,
          scaleY: 1,
          translateX: 350,
          translateY: 100,
          unit: 'PT'
        }
      }
    }
  },

// Insert text into the box, using the supplied element ID.
{
   insertText: {
     objectId: elementId,
     // tried linkUrl: "link";
     insertionIndex: 0,
     text: SpreadsheetApp.getActiveSheet().getRange(3,2).getValue()
    }
 }];

// have tried elementId.setLinkUrl(linkHere);

2 个答案:

答案 0 :(得分:3)

您可以使用以下代码创建幻灯片,添加形状并为其添加链接:

  var presentationId =  "<YOUR_PRESENTATION_ID>";
  var newSlideId = Utilities.getUuid();
  var newElementId = Utilities.getUuid();
  var pt350 = {
    magnitude: 350,
    unit: 'PT'
  };
  var requests = [
    {
      createSlide: {
        objectId: newSlideId
      }
    },
    {
      createShape: {
        objectId: newElementId,
        shapeType: 'TEXT_BOX',
        elementProperties: {
          pageObjectId: newSlideId,
          size: {
            height: pt350,
            width: pt350
          },
          transform: {
            scaleX: 1,
            scaleY: 1,
            translateX: 350,
            translateY: 100,
            unit: 'PT'
          }
        }
      }
    },
    {
      insertText: {
        objectId: newElementId,
        insertionIndex: 0,
        text: SpreadsheetApp.getActiveSheet().getRange(3,2).getValue()
      }
    },
    {
      updateShapeProperties: {
        objectId: newElementId,
        shapeProperties: {
          link: {
            pageObjectId: "<YOUR_PAGE_ID>"
          }
        },
        fields: "link"
      }
    }];

请注意,您将需要演示文稿的ID和目标页面的ID。如果愿意,可以将幻灯片索引用作目的地(more information here)。

如果您在创建幻灯片插件时需要更多帮助,可以访问this example

如果您对此主题还有其他疑问,请随时与我们联系。

致谢

答案 1 :(得分:0)

是的,有可能。检出Extending Google Slidesshape.setLinkUrl(url)