首页 > 解决方案 > 如何将链接附加到 Apps Script 上的形状或文本框?

问题描述

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

我查看了 API 文档,对是否可能感到困惑。

这是一个表格/幻灯片附加组件。

我需要做的是在我创建的 Add On 菜单上按下按钮时,在 Google Slides 中创建幻灯片,并使用表格中的信息。我想创建一个文本框,并在您单击它时链接到幻灯片放映中的另一张幻灯片。我只想让它全部自动化。

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

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);

标签: google-apps-scriptgoogle-slides-apigoogle-apps-script-addongoogle-slides

解决方案


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

  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。如果您愿意,可以使用幻灯片索引作为目的地(更多信息在这里)。

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

如果您对此主题有任何其他问题,请随时回复。

问候


推荐阅读