Как добавить или заменить текст заметок Google Slide гиперссылкой? - PullRequest
1 голос
/ 23 марта 2020

Мне нужно создать заметку, созданную с помощью Google Apps Script, в презентации на слайде 0, где к ней прикреплена гиперссылка, которую я добавляю в Google Sheet. Это должна быть заметка, а не текст или изображение на слайде. Причина в том, что URL-адреса «кликабельны» только на слайде, если презентация сначала переводится в режим презентации.

Если я делаю это вручную, я могу создать текст заметки, выделить его и прикрепить гиперссылку. Текст изменится на обычный внешний вид гиперссылки, на который можно щелкнуть, прежде всего не переходя в режим презентации.

Вот как далеко я зашел:

slides[0].getNotesPage().getSpeakerNotesShape().getText().setText("juhu");

Но как добавить гиперссылка, в данном примере на строку "juhu"?

Если я пытаюсь сделать это с помощью: .setLinkUrl(), он говорит мне:

Исключение: операция не допускается на элементе страницы заметок (g7185420b90_2_454). (строка 19, файл «Код»)

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 24 марта 2020
  • Вы хотите поместить текст с гиперссылкой на страницу заметок в Google Slides.
  • Вы хотите добиться этого с помощью скрипта Google Apps.

Если мой понимание правильно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

В этом ответе используется Служба слайдов .

Точки модификации:

  • setLinkUrl() - это метод класса TextStyle.
    • По вашему вопросу, когда запускается slides[0].getNotesPage().getSpeakerNotesShape().setLinkUrl(url), возникает такая ошибка. Я думаю, что причина вашей проблемы может быть в следующем.
  • Чтобы установить гиперссылку на текст, сначала, пожалуйста, используйте getTextStyle() для объекта TextRange. Этот метод возвращает объект TextStyle.

Модифицированный скрипт:

Когда ваш скрипт модифицируется, он выглядит следующим образом.

var text = "juhu";
var url = "###";  // Please set the URL.

var slides = SlidesApp.getActivePresentation().getSlides();
var text = slides[0].getNotesPage().getSpeakerNotesShape().getText().setText(text);
text.getTextStyle().setLinkUrl(url);

или

var text = "juhu";
var url = "###";  // Please set the URL.

var slides = SlidesApp.getActivePresentation().getSlides();
slides[0].getNotesPage().getSpeakerNotesShape().getText().setText(text).getTextStyle().setLinkUrl(url);

Ссылки:

Если я неправильно понял ваш вопрос и это не то направление, которое вы хотите, я приношу свои извинения.

0 голосов
/ 23 марта 2020

Вам необходимо включить Advanced Slides Service , затем использовать следующий код для установки ссылки на заметки слайда:

let presentationId = SlidesApp.getActivePresentation().getId();
let presentation = Slides.Presentations.get(presentationId);

let slidesReqs = [];

slidesReqs.push({
  updateTextStyle: {
    objectId: presentation.slides[0].slideProperties.notesPage.notesProperties.speakerNotesObjectId,
    style: {
      link: {
        url: 'https://example.com'
      }
    },
    textRange: {
      type: 'ALL'
    },
    fields: 'link'
  }
});

Slides.Presentations.batchUpdate({'requests': slidesReqs}, presentationId);

Результат:

enter image description here

...