- Вы хотите экспортировать Документы Google (электронные таблицы, документы и слайды) в виде файла PDF, используя буфер массива с Google Диска.
- Вы хотите добиться этого с помощью Drive API v2 с googleapis из Node.js.
- Вы уже смогли получить файл с помощью Drive API.
Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
Шаблон 1:
В этом шаблоне используется буфер массива.
Модифицированный скрипт:
const drive = google.drive({version: "v2"});
drive.files.export(
{
auth: auth,
fileId: "###", // Please set the file ID of Google Docs.
mimeType: "application/pdf"
},
{ responseType: "arraybuffer" },
(err, res) => {
if (err) {
console.log(err);
} else {
fs.writeFile("file.pdf", Buffer.from(res.data), function(err) {
if (err) {
return console.log(err);
}
});
}
}
);
Шаблон 2:
В этом шаблоне используется поток.
Модифицированный скрипт:
const drive = google.drive({version: "v2"});
var dest = fs.createWriteStream("file.pdf");
drive.files.export(
{
auth: auth,
fileId: "###", // Please set the file ID of Google Docs.
mimeType: "application/pdf"
},
{ responseType: "stream" },
function(err, response) {
if (err) {
console.log(err);
return;
}
response.data
.on("end", function() {
console.log("Done.");
})
.on("error", function(err) {
console.log("Error during download", err);
return process.exit();
})
.pipe(dest);
}
);
Примечание:
- Пожалуйста, используйте последнюю версию googleapis.
- И в приведенном выше сценарии, когда
const drive = google.drive({version: "v2"});
изменен на const drive = google.drive({version: "v3"});
, можно также использовать Drive API v3.
Ссылки:
Если я неправильно понял ваш вопрос, а это не то направление, которое вы хотите, прошу прощения.