我看到了一些从谷歌表格生成 PDF 的方法。但找不到如何设置页面设置,例如隐藏网格线、设置边距、分页符等。 当我从文件菜单中选择下载为 PDF 时,我可以执行此操作。 那么有什么方法可以通过脚本访问页面设置吗?
我的工作表包含图表和图片。我正在寻找不忽略媒体内容的方法
最佳答案
将 Google 电子表格转换为 pdf 并指定不同参数的最简单方法是使用 UrlFetchApp
它允许您通过将不同的打印选项添加到 URL 来指定不同的打印选项,其中包括边距和网格线。
示例:
function myFunction() {
var token = ScriptApp.getOAuthToken();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var id = ss.getId();
var url = "https://docs.google.com/spreadsheets/d/"+id+"/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
+'&top_margin=0.50'
+'&bottom_margin=0.50'
+'&left_margin=0.50'
+'&right_margin=0.50'
+ '&gridlines=false'
// other parameters if you need
/*
+ '&fitw=true&source=labnol' // fit to page width, false for actual size
+ '&sheetnames=false&printtitle=false' // hide optional headers and footers
+ '&pagenumbers=false' // hide page numbers
+ '&fzr=false' // do not repeat row headers (frozen rows) on each page
+ '&gid='; // the sheet's Id
*/
var response = UrlFetchApp.fetch(url + url_ext,
{
headers: {
'Authorization': 'Bearer ' + token
},
muteHttpExceptions:true
});
DriveApp.createFile(response.getBlob().setName("myPdf"));
}
不幸的是,我不知道设置分页符的方法,但人们正在使用 workarounds .
关于javascript - 如何从 Google Sheet 下载具有特定边距和分页符的 PDF 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61409215/