Add total pages to Google Slides
2 minutes read in DevelopmentUpd. Все таки пользоваться серьезно google slides нельзя, нету кучу возможностей, и в самолете слайды не можешь поредактировать. Перешел на Impress.
Google Slides неплохой вариант для создания строгих презентаций. В целом это законченный, полноценный продукт, но все-таки у него есть несколько проблем. Одна из проблем о которой сейчас пойдет речь - невозможность показывать общее количество слайдов.
Решать мы будем с помощью Google Apps Script.
И так, сначала по шагам, а потом рассмотрим подробнее интересные моменты:
- Открываем/создаем Google Slides;
- Tools -> Script Editor…;
- В окно редактора вставляем следующий код:
function onInstall(e) { onOpen(); } function onOpen(e) { const ui = SlidesApp.getUi().createAddonMenu() .addItem("Update page count", "pageCount") .addToUi(); } function pageCount() { const slides = SlidesApp .getActivePresentation(); const totalPages = slides.getSlides().length; slides.getSlides().forEach(function (slide, idx) { slide.getShapes() .filter(function (element) { return element.getText && element.getText().find("Slide [0-9]+\/[0-9]+").length > 0 }) .forEach(function (element) { return element.getText().setText(Utilities.formatString("Slide %s/%s", idx + 1, totalPages)); }); }); }
- Теперь на слайдах вставляем в нужном месте текстовый блок с содержимым: “Slide 0/0”;
- И вызываем скрипт из Add-ons -> Page Count -> Update page count.
Если у вас на слайдах другой текст (не Slide 1/100
) то замените соответсвующий regex.
В целом это не полноценное решение, но достаточно простое и самое главное - рабочее. Также вы можете посмотреть на доступный API и пример похожего дополнения/скрипта: Progress Bar Add-on.
Из интересных вещей - скрипты могут вызываться по http (и имеют сами доступ к http клиенту), могут получать параметры из запроса и автоматизировать работу с множеством сервисов гугла: Calendar, Contacts, Documents, Drive, Forms, Gmail, Groups, Language, Maps, Sites, Slides и Spreadsheets.
Возможно я разберусь с публикацией этого скрипта в стор и сделаю его более общим. Но пока - пока.