Google Suite - Apps Script - загрузка слайдов в виде файлов PNG через API - PullRequest
1 голос
/ 21 января 2020

Доброе утро всем. Я написал короткий сценарий, который создает пакетные слайды Google [на одной странице] на основе строк из электронной таблицы. В то время как в l oop для каждого создания, я хотел бы создать PNG слайда в Google Drive (или загрузить на рабочий стол пользователя). Эти рисунки должны быть такими же, как если бы пользователь щелкнул Файл> Загрузить> PNG - тяжелый мелкий текст требует полного проектора HD - поэтому я не верю, что могу использовать функцию «Миниатюра», которая ограничена 1600 пикселями.

Мой код ниже генерирует ошибку «Преобразование из текста / html в изображение / png не поддерживается» - поэтому я не уверен, является ли это ограничением API или проблемой с моим кодированием. Заранее спасибо.

  var options =
     {
       "contentType" : "image/PNG"
     };
  var url = 'https://docs.google.com/presentation/d/' + presentationCopyId + '/export/PNG';
  var response = UrlFetchApp.fetch(url, options);
  var image = response.getAs(MimeType.PNG);
  image.setName(SlideName);
  DriveApp.createFile(image);  

1 Ответ

1 голос
/ 22 января 2020

Ответ:

К сожалению, невозможно экспортировать слайды в виде файла PNG с помощью API слайдов или дисков.

Дополнительная информация:

Согласно документации , существует только четыре доступных MimeTypes для экспорта файлов презентаций:

  • application/vnd.openxmlformats-officedocument.presentationml.presentation
  • application/vnd.oasis.opendocument.presentation
  • application/pdf
  • text/plain

Попытка экспорта в MIME-тип image/png приводит к следующей ошибке:

Преобразование из text / html to image / png не поддерживается

В целях тестирования я попытался использовать конечную точку /export/pdf и затем выполнить второе преобразование в PNG следующим образом:

function slidesAsPngAttempt() {
  var presentationCopyId = "1Loa...pQs";  
  var options =
      {
        "contentType" : "application/pdf"
      };
  // for exporting to pdf the /export/pdf needs to be all lower case to avoid 404
  var url = 'https://docs.google.com/presentation/d/' + presentationCopyId + '/export/pdf';  
  var response = UrlFetchApp.fetch(url, options);
  var pdfAsblob = response.getBlob();

  var image = pdfAsblob.getAs('image/png');

  image.setName(DriveApp.getFileById(presentationCopyId).getName());
  DriveApp.createFile(image);  
}

К сожалению, похожая ошибка возникает при запуске var image = pdfAsblob.getAs('image/png'):

Преобразование из приложения / pdf в изображение / png не поддерживается.

Из та же справочная документация по типам экспорта MIME, для файлов PDF доступны только следующие типы экспорта:

  • text/tab-separated-values
  • application/zip

Так что, к сожалению, это невозможно. Я знаю, что, как правило, это плохие новости, но я надеюсь, что это полезно для вас!

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...