javascript - 如何从 Google Sheet 下载具有特定边距和分页符的 PDF 文件?
问题描述
我看到了一些从谷歌表格生成 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"));
}
不幸的是,我不知道设置分页符的方法,但人们正在使用解决方法。
推荐阅读
- performance - Neo4j 交互式图形冻结
- json - React 无法读取组件内的 JSON 本地文件值
- python - 使用 Django 实现 3x3 图像网格
- php - 如何修复 laravel 查询异常
- python - 如何使用 pandas DataFrame builder 的函数 from_records 强制数据类型?
- javascript - 允许这种优化以求素数的代数是什么?
- angular - 承诺似乎根本无法解决
- angular - 获取我的组件已在其中呈现的模板的上下文
- c - waitpid 没有给我一致的结果
- listview - Xamarin listView 选择了错误的项目