Загрузка презентации Google Slides в виде документа PowerPoint с использованием скрипта Google Apps? - PullRequest
0 голосов
/ 27 сентября 2018

Графический интерфейс Google Slides предлагает загрузить презентацию GSlides в виде Powerpoint (myFile.pptx).Я не смог найти эквивалент в документации по Google Apps Script - любой указатель?

РЕДАКТИРОВАТЬ

Благодаря комментариям и ответам я попробовал этот фрагмент:

function testFileOps() {
  // Converts the file named 'Synthese' (which happens to be a Google Slide doc) into a pptx
  var files = DriveApp.getFilesByName('Synthese');
  var rootFolder = DriveApp.getRootFolder();
  while (files.hasNext()) {
    var file = files.next();
    var blobPptx = file.getBlob().getAs('application/vnd.openxmlformats-officedocument.presentationml.presentation');
    var result = rootFolder.createFile(blobPptx);
  }
}

Возвращает ошибку:

Преобразование из application / vnd.google-apps.presentation в application / vnd.openxmlformats-officedocument.presentationml.presentation не поддерживается.(строка 7, файл "Код")

ВТОРОЕ РЕДАКТИРОВАНИЕ

В соответствии с другим предложением в комментариях я попытался сделать http-вызов из Google App Script, что бы непосредственно преобразовать gslides в pptx, без ограничения размера.Он создает файл на G Drive, но этот файл поврежден / не читается.Сценарий GAS:

function convertFileToPptx() {
  // Converts a public Google Slide file into a pptx
 var rootFolder = DriveApp.getRootFolder();
 var response = UrlFetchApp.fetch('https://docs.google.com/presentation/d/1Zc4-yFoUYONXSLleV_IaFRlNk6flRKUuAw8M36VZe-4/export/pptx');
 var blobPptx = response.getContent();
 var result = rootFolder.createFile('test2.pptx',blobPptx,MimeType.MICROSOFT_POWERPOINT);
}

Примечания:

  • Я получил MIME-тип для pptx здесь
  • , используя MIME-тип 'pptx' возвращает то же сообщение об ошибке

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Как насчет этой модификации?

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

  • response.getContent() возвращает байтовый массив.Поэтому, пожалуйста, используйте response.getBlob().

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

function convertFileToPptx() {
  var fileId = "1Zc4-yFoUYONXSLleV_IaFRlNk6flRKUuAw8M36VZe-4";
  var outputFileName = "test2.pptx";

  var url = 'https://docs.google.com/presentation/d/' + fileId + '/export/pptx';
  var rootFolder = DriveApp.getRootFolder();
  var response = UrlFetchApp.fetch(url);
  var blobPptx = response.getBlob();
  var result = rootFolder.createFile(blobPptx.setName(outputFileName));
}

Примечание:

  • Если вы хотите конвертировать Google Slides, которые не являютсяопубликовано, в вашем Google Drive, пожалуйста, используйте токен доступа.В это время, пожалуйста, измените url следующим образом.
  • DriveApp.createFile() создает файл в корневой папке по умолчанию.

Ссылки:

0 голосов
/ 27 сентября 2018

Как упомянуто tehhowch, вы можете получить файл Google Slide с вашего диска и получить его как .pptx.(Не уверен в типе пантомимы.)

File#getAs:

...