【发布时间】:2020-04-24 13:12:35
【问题描述】:
我看到了一些从谷歌表格生成 PDF 的方法。但找不到如何设置页面设置,如隐藏网格线、设置边距、分页符等。 当我从文件菜单中选择下载为 PDF 时,我可以这样做。 那么有什么方法可以通过脚本访问页面设置吗?
我的工作表包含图表和图片。我正在寻找不忽略媒体内容的方法
【问题讨论】:
标签: javascript pdf google-apps-script google-sheets pdf-generation
我看到了一些从谷歌表格生成 PDF 的方法。但找不到如何设置页面设置,如隐藏网格线、设置边距、分页符等。 当我从文件菜单中选择下载为 PDF 时,我可以这样做。 那么有什么方法可以通过脚本访问页面设置吗?
我的工作表包含图表和图片。我正在寻找不忽略媒体内容的方法
【问题讨论】:
标签: javascript pdf google-apps-script google-sheets pdf-generation
它允许您通过将它们添加到 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。
【讨论】: