Экспортировать Google Slides в изображение / PDF

Вопрос или проблема

Я пытаюсь преобразовать Google Slides в формат PDF или IMAGE, и у меня много проблем с поиском решения, которое не устарело на 10 лет и все еще работает.

Вот как я это сделал :

Не имеет значения, каким путем вы идете, ВАМ НУЖНО добавить сервисы “Google Slides API” !!
введите описание изображения здесь

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

ДЛЯ PDF

function toPDF() {
  const folderId = "1-rCYyDgTzOV0FKt2gdh8dtaB1hSi1JN-";
  const presentation = SlidesApp.getActivePresentation();
  const slides = presentation.getSlides();
  let temp = SlidesApp.create("Временная");
  const id = temp.getId();
  const file = DriveApp.getFileById(id);
  const folder = DriveApp.getFolderById(folderId);
  slides.forEach((slide, i) => {
    temp.appendSlide(slide);
    temp.getSlides()[0].remove();
    temp.saveAndClose();
    folder.createFile(file.getBlob().setName(i + 1));
    temp = SlidesApp.openById(id);
  });
  file.setTrashed(true);
}

ДЛЯ ИЗОБРАЖЕНИЯ

 function toPNG() {
      const folderId = "1G6E_BZeilLJ1_f36xpwFqlthXblGOI3h";
      const presentation = SlidesApp.getActivePresentation();
      const id = presentation.getId();
      const slides = presentation.getSlides();
      const folder = DriveApp.getFolderById(folderId);
      const options =  {"thumbnailProperties.mimeType": "PNG" };
      slides.forEach((slide, i) => {
        const url = Slides.Presentations.Pages.getThumbnail(
          id, 
          slide.getObjectId(),
          options
         ).contentUrl;
        const blob = UrlFetchApp.fetch(url).getAs(MimeType.PNG);
        folder.createFile(blob.setName(i + 1));
      });
    }

Если вы хотите использовать код из более крупного скрипта (вне скрипта, связанного с документом Google Slides), тогда вы можете использовать это :

ДЛЯ ИЗОБРАЖЕНИЯ :

/**
 * Преобразует все слайды презентации Google Slides (указанной по ее ID) в изображения PNG
 * и сохраняет их в указанную папку.
 * 
 * @param {string} slideFileId - ID презентации Google Slides для преобразования.
 * @param {string} folderId - ID папки, в которую должны быть сохранены изображения PNG.
 */
function convertSlideToPNG(slideFileId, folderId) {
  // Получаем указанную презентацию по ее ID
  const presentation = SlidesApp.openById(slideFileId);

  // Получаем все слайды в презентации
  const slides = presentation.getSlides();

  // Получаем целевую папку по ее ID
  const folder = DriveApp.getFolderById(folderId);

  // Определяем параметры для получения слайда в формате PNG
  const options = { "thumbnailProperties.mimeType": "PNG" };

  // Цикл по каждому слайду и генерируем его миниатюру
  slides.forEach((slide, i) => {
    const url = Slides.Presentations.Pages.getThumbnail(
      slideFileId,
      slide.getObjectId(),
      options
    ).contentUrl; // Получаем URL для миниатюры PNG

    const blob = UrlFetchApp.fetch(url).getAs(MimeType.PNG); // Получаем изображение в формате PNG
    folder.createFile(blob.setName('Слайд_' + (i + 1) + '.png')); // Сохраняем PNG в папке с названием на основе слайда
  });
}

Ответ или решение

Экспорт Google Slides в PDF или изображение: Полное руководство

Экспорт презентаций из Google Slides в такие форматы, как PDF или изображения, может показаться сложной задачей, особенно если вы не знаете, какие инструменты использовать, и как они работают. В этом руководстве мы рассмотрим несколько стратегий для достижения этой цели с использованием Google Apps Script и Google Slides API.

Подготовка к экспорту

  1. Активируйте Google Slides API: Для начала убедитесь, что у вас активирован Google Slides API. Это необходимо для работы с API и выполнения действий над слайдами. Вы можете сделать это через Google Cloud Console, добавив проект и включив API.

  2. Создание скрипта: Перейдите в Google Slides, откройте вашу презентацию и перейдите в меню Расширения -> Apps Script. Это откроет редактор, где вы можете добавить свой код.

Экспорт в PDF

Экспорт слайдов в PDF можно выполнить с помощью следующего скрипта:

function toPDF() {
  const folderId = "1-rCYyDgTzOV0FKt2gdh8dtaB1hSi1JN-"; // ID папки для сохранения PDF
  const presentation = SlidesApp.getActivePresentation();
  const slides = presentation.getSlides();
  let temp = SlidesApp.create("Temporary"); // Создаем временную презентацию
  const id = temp.getId();
  const file = DriveApp.getFileById(id);
  const folder = DriveApp.getFolderById(folderId);

  slides.forEach((slide, i) => {
    temp.appendSlide(slide); // Добавляем слайд во временную презентацию
    temp.getSlides()[0].remove(); // Удаляем пустой слайд
    temp.saveAndClose();
    folder.createFile(file.getBlob().setName(i + 1)); // Сохраняем файл в указанной папке
    temp = SlidesApp.openById(id); // Открываем временную презентацию для добавления следующего слайда
  });

  file.setTrashed(true); // Удаляем временный файл
}

Экспорт в Изображения (PNG)

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

function toPNG() {
  const folderId = "1G6E_BZeilLJ1_f36xpwFqlthXblGOI3h"; // ID папки для сохранения изображений
  const presentation = SlidesApp.getActivePresentation();
  const id = presentation.getId();
  const slides = presentation.getSlides();
  const folder = DriveApp.getFolderById(folderId);
  const options = { "thumbnailProperties.mimeType": "PNG" }; // Устанавливаем формат PNG

  slides.forEach((slide, i) => {
    const url = Slides.Presentations.Pages.getThumbnail(
      id,
      slide.getObjectId(),
      options
     ).contentUrl; // Получаем URL изображения
    const blob = UrlFetchApp.fetch(url).getAs(MimeType.PNG); // Загружаем изображение как PNG
    folder.createFile(blob.setName(i + 1)); // Сохраняем файл в указанной папке
  });
}

Альтернативный подход для изображений

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

function convertSlideToPNG(slideFileId, folderId) {
  const presentation = SlidesApp.openById(slideFileId);
  const slides = presentation.getSlides();
  const folder = DriveApp.getFolderById(folderId);
  const options = { "thumbnailProperties.mimeType": "PNG" };

  slides.forEach((slide, i) => {
    const url = Slides.Presentations.Pages.getThumbnail(
      slideFileId,
      slide.getObjectId(),
      options
    ).contentUrl; // Получаем URL для PNG
    const blob = UrlFetchApp.fetch(url).getAs(MimeType.PNG); // Получаем изображение в формате PNG
    folder.createFile(blob.setName('Slide_' + (i + 1) + '.png')); // Сохраняем PNG с именем соответствующим номеру слайда
  });
}

Заключение

Экспорт слайдов из Google Slides в PDF или изображения стал значительно более доступным благодаря простоте использования Google Apps Script и API. Для достижения наилучших результатов убедитесь, что правильно настроены разрешения и у вас есть доступ к Google Cloud Console.

Если вам понадобятся дополнительные функции или есть вопросы о настройках, не стесняйтесь обращаться к документации Google или выпускать запрос на специализированных форумах.

Оцените материал
Добавить комментарий

Капча загружается...