Как прикрепить ссылку на фигуру или текстовое поле в Apps Script? - PullRequest
2 голосов
/ 06 октября 2019

Я знаю, как добавить фигуру к слайду, но я знаю, что в Google Slides вы можете связать другой слайд для отображения, как только вы нажмете на это текстовое поле. Можно ли в App Script создать фигуру и затем прикрепить к ней ссылку?

Я посмотрел документацию по API и смутился, если это возможно.

ЭтоДополнение Sheets / Slides.

Что мне нужно сделать, так это то, что когда я нажимаю кнопку в моем меню Add On, которое я создал, это создать слайд в Google Slides и использовать информацию из листов. Я хочу создать 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 ]

2 голосов
/ 07 октября 2019

Вы можете создать слайд, добавить форму и добавить ссылку на нее, используя следующий код:

  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"
      }
    }];

Обратите внимание, что вам понадобится идентификатор вашей презентации и идентификатор страницы назначения. Если вы предпочитаете, вы можете использовать индекс слайдов в качестве места назначения ( дополнительная информация здесь ).

Если вам нужна дополнительная помощь при создании дополнения к слайдам, вы можете посетить этот пример .

Если у вас есть какие-либо вопросы по этой теме, пожалуйста, не стесняйтесь ответить.

С уважением

0 голосов
/ 06 октября 2019

Да, это возможно. Оформить заказ Расширение Google Slides и shape.setLinkUrl (url)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...