gpt4 book ai didi

javascript - 使用 Google Apps 脚本,如何将每张演示文稿幻灯片下载为 pdf 格式?

转载 作者:行者123 更新时间:2023-11-28 03:28:15 25 4
gpt4 key购买 nike

我对此有点陌生,因此对于任何与新手相关的烦恼,我提前表示歉意。

我想要做的是创建一个包含各种图像的谷歌演示文稿,然后将每张幻灯片下载为单独的 pdf。我在下载 pdf 部分时遇到问题。演示文稿构建正确。我尝试了几种不同的方法,但尚未找到有效的解决方案。我尝试过的最简单的一个是:

var newFolder=rootFolder.createFolder(sourceSpreadsheet.getName() + ' - Functionals').setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);  
var deck = SlidesApp.create(NAME); // name determined separately
var presentationID = deck.getId();

...

var blob = DriveApp.getFileById(presentationID).getBlob();
newFolder.createFile(blob);

这确实创建了一个 pdf,但看起来它只是一个空白页。我不确定它是否需要单独在每张幻灯片上运行,而不是在整个演示文稿上运行。但我找不到任何东西表明情况确实如此。

我尝试的第二件事是基于我为电子表格找到的类似解决方案。我不太明白更改 URL 如何将其下载为 pdf,也许这与它的问题有关,这会导致 404。

var presentation = SlidesApp.openById(presentationID);
var url = presentation.getUrl();
url = url.replace(/edit$/,'');
var url_ext = 'export?exportFormat=pdf&format=pdf' + '&muteHttpExceptions=true' //export as pdf
var response = UrlFetchApp.fetch(url + url_ext, {
headers: {
'Authorization': 'Bearer ' + token
}
});

最佳答案

我使用了第二种方法来创建 Google 表格的 pdf。

以下函数可用于创建幻灯片的 pdf 文件。这使用了 REST API,因此您需要根据您想要的 pdf 格式设置参数来构造 URL。

您的格式化网址需要如下所示:https://docs.google.com/presentation/d/ ****presentationId****/export?exportFormat=pdf&format=pdf

您可以在此函数中找到用于格式化 pdf 的其他可选参数。

function exportPDF(fileId) {
var ss = SpreadsheetApp.openById(fileId);
// Base URL
var url = "https://docs.google.com/spreadsheets/d/SS_ID/export?".replace("SS_ID", ss.getId());
/* Specify PDF export parameters
From: https://code.google.com/p/google-apps-script-issues/issues/detail?id=3579
https://stackoverflow.com/questions/46088042/margins-parameters-for-spreadsheet-export
*/

var url_ext = 'exportFormat=pdf&format=pdf' // export as pdf / csv / xls / xlsx
+ '&size=letter' // paper size legal / letter / A4
+ '&portrait=true' // orientation, false for landscape
+ '&fitw=true&source=labnol' // fit to page width, false for actual size
+ '&top_margin=0.25' //All four margins must be set!
+'&bottom_margin=0.25' //All four margins must be set!
+'&left_margin=0.25' //All four margins must be set!
+'&right_margin=0.25' //All four margins must be set!
+ '&sheetnames=false&printtitle=false' // hide optional headers and footers
+ '&pagenumbers=false&gridlines=false' // hide page numbers and gridlines
+ '&fzr=true' // do not repeat row headers (frozen rows) on each page
+ '&gid='; // the sheet's Id

var token = ScriptApp.getOAuthToken();
var sheet = ss.getSheets()[0]; //get first sheet

// Converts to PDF
var response = UrlFetchApp.fetch(url + url_ext + sheet.getSheetId(), {
headers: {
'Authorization': 'Bearer ' + token
}
});

//convert the response to a blob and store in our array
var blob = response.getBlob().setName(sheet.getName() + '.pdf');
var folderId = '**********your folder id here*******************';
var folder = DriveApp.getFolderById(folderId);
return folder.createFile(blob).getId();
}

关于javascript - 使用 Google Apps 脚本,如何将每张演示文稿幻灯片下载为 pdf 格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58436033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com