Показывать индикаторы выполнения в презентации Google Slides
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Уровень кодирования : Средний Продолжительность : 15 минут Тип проекта : Дополнение к редактору
Цели
Поймите, что делает решение.
Узнайте, что делают службы Apps Script в решении.
Настройте сценарий.
Запустите сценарий.
Об этом решении
Используйте это решение, чтобы добавить индикатор выполнения в нижнюю часть слайдов презентации.
Как это работает
Скрипт вычисляет количество слайдов в презентации и добавляет прямоугольник внизу каждого слайда. Скрипт увеличивает ширину каждого прямоугольника, чтобы показать прогресс на слайдах.
Службы сценариев приложений
В этом решении используется следующий сервис:
Служба слайдов : получает слайды презентации и добавляет к каждому из них прямоугольную форму.
Предварительные условия
Для использования этого образца необходимы следующие предварительные условия:
Учетная запись Google (для учетных записей Google Workspace может потребоваться одобрение администратора).
Веб-браузер с доступом в Интернет.
Настройте сценарий
Нажмите следующую кнопку, чтобы сделать копию презентации слайдов с индикатором выполнения . Проект Apps Script для этого решения приложен к презентации. Сделать копию
В презентации нажмите Расширения>Индикатор выполнения>Показать индикатор выполнения .
При появлении запроса авторизуйте сценарий. Если на экране согласия OAuth отображается предупреждение «Это приложение не проверено» , продолжайте, выбрав «Дополнительно»> «Перейти к {Имя проекта} (небезопасно)» .
Снова нажмите «Расширения»>«Индикатор выполнения»>«Показать индикатор выполнения» .
Чтобы удалить индикатор выполнения, нажмите Расширения>Индикатор выполнения>Скрыть индикатор выполнения .
Просмотрите код
Чтобы просмотреть код скрипта приложений для этого решения, нажмите «Просмотреть исходный код» ниже:
/**
* @OnlyCurrentDoc Adds progress bars to a presentation.
*/
const BAR_ID = 'PROGRESS_BAR_ID';
const BAR_HEIGHT = 10; // px
/**
* Runs when the add-on is installed.
* @param {object} e The event parameter for a simple onInstall trigger. To
* determine which authorization mode (ScriptApp.AuthMode) the trigger is
* running in, inspect e.authMode. (In practice, onInstall triggers always
* run in AuthMode.FULL, but onOpen triggers may be AuthMode.LIMITED or
* AuthMode.NONE.)
*/
function onInstall(e) {
onOpen();
}
/**
* Trigger for opening a presentation.
* @param {object} e The onOpen event.
*/
function onOpen(e) {
SlidesApp.getUi().createAddonMenu()
.addItem('Show progress bar', 'createBars')
.addItem('Hide progress bar', 'deleteBars')
.addToUi();
}
/**
* Create a rectangle on every slide with different bar widths.
*/
function createBars() {
deleteBars(); // Delete any existing progress bars
const presentation = SlidesApp.getActivePresentation();
const slides = presentation.getSlides();
for (let i = 0; i < slides.length; ++i) {
const ratioComplete = (i / (slides.length - 1));
const x = 0;
const y = presentation.getPageHeight() - BAR_HEIGHT;
const barWidth = presentation.getPageWidth() * ratioComplete;
if (barWidth > 0) {
const bar = slides[i].insertShape(SlidesApp.ShapeType.RECTANGLE, x, y,
barWidth, BAR_HEIGHT);
bar.getBorder().setTransparent();
bar.setLinkUrl(BAR_ID);
}
}
}
/**
* Deletes all progress bar rectangles.
*/
function deleteBars() {
const presentation = SlidesApp.getActivePresentation();
const slides = presentation.getSlides();
for (let i = 0; i < slides.length; ++i) {
const elements = slides[i].getPageElements();
for (const el of elements) {
if (el.getPageElementType() === SlidesApp.PageElementType.SHAPE &&
el.asShape().getLink() &&
el.asShape().getLink().getUrl() === BAR_ID) {
el.remove();
}
}
}
}
Авторы
Этот образец поддерживается Google с помощью экспертов-разработчиков Google.