Конвертировать GDOC в изображение - PullRequest
1 голос
/ 12 марта 2019

Есть ли способ создать изображение (например, png) из документа Google? Я действительно имею в виду изображение, а не просто PDF. GetAS создает только pdf, но возвращает ошибку, если для contentType установлено значение image / png или другие эквивалентные форматы. Мой (на самом деле тривиальный) код

function convertFile() {
var SOURCE_TEMPLATE = "1HvqYidpUpihzo_HDAQ3zE5ScMVsHG9NNlwPkN80GHK0";
var TARGET_FOLDER = "1Eue-3tJpE8sBML0qo6Z25G0D_uuXZjHZ";
var source = DriveApp.getFileById(SOURCE_TEMPLATE);
var targetFolder = DriveApp.getFolderById(TARGET_FOLDER);
var target = source.makeCopy(source,targetFolder);
var newFile = DriveApp.createFile(target.getAs('image/png'));
}

Когда я запускаю этот код, я получаю следующую ошибку (мой перевод):

Преобразование из application / vnd.google-apps.document в изображение / png не поддерживается.

Ty

1 Ответ

0 голосов
/ 14 марта 2019

Как насчет этого ответа?

Причина ошибки:

makeCopy() возвращает объект File.getAs() не может быть использовано для этого.При этом возникает ошибка.

Обходной путь:

К сожалению, на данном этапе Документ Google нельзя напрямую экспортировать в виде изображений PNG.Поэтому необходимо подумать об обходных путях.Документ Google можно преобразовать в PDF.Этот ответ использует это.В качестве обходного пути я хотел бы предложить использовать внешний API, который является ConvertAPI .Я думал, что с помощью внешнего API скрипт становится простым.Этот метод (PDF в PNG API) API можно преобразовать из данных PDF в данные PNG.

Когда вы, например, попробуете это, вы также можете проверить это с помощью «Бесплатного пакета».Когда вы пытаетесь использовать «Бесплатный пакет», зарегистрируйтесь в «Бесплатном пакете» и получите свой Секретный ключ.

Пример сценария:

Перед запуском этого сценария, пожалуйста, получите ваш Секретный ключ иустановите его.

var secretkey = "###";  // Please set your secret key.

var SOURCE_TEMPLATE = "1HvqYidpUpihzo_HDAQ3zE5ScMVsHG9NNlwPkN80GHK0";
var TARGET_FOLDER = "1Eue-3tJpE8sBML0qo6Z25G0D_uuXZjHZ";
var url = "https://v2.convertapi.com/convert/pdf/to/png?Secret=" + secretkey;
var options = {
  method: "post",
  payload: {File: DriveApp.getFileById(SOURCE_TEMPLATE).getBlob()},
}
var res = UrlFetchApp.fetch(url, options);
res = JSON.parse(res.getContentText());
res.Files.forEach(function(e) {
  var blob = Utilities.newBlob(Utilities.base64Decode(e.FileData), "image/png", e.FileName);
  DriveApp.getFolderById(TARGET_FOLDER).createFile(blob);
});

Ссылки:

...