javascript - 如何从 Google Sheet 下载具有特定边距和分页符的 PDF 文件?

标签 javascript pdf google-apps-script google-sheets pdf-generation

我看到了一些从谷歌表格生成 PDF 的方法。但找不到如何设置页面设​​置,例如隐藏网格线、设置边距、分页符等。 当我从文件菜单中选择下载为 PDF 时,我可以执行此操作。 那么有什么方法可以通过脚本访问页面设置吗?

enter image description here

我的工作表包含图表和图片。我正在寻找不忽略媒体内容的方法

最佳答案

将 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/

相关文章:

javascript - Cypress : Setting a variable from the result of a task

javascript - 使用 jQuery 将雅虎财经观察列表从 CSV 解析为 JSON

java - 使用 Flying Saucer 和 CSS 进行分段页数统计

Javascript 函数在 chrome 中不起作用

javascript - 如何捕获键盘事件来自哪些键?

r - 在Linux上安装R : configure: WARNING: you cannot build PDF versions of the R manuals

regex - 使用正则表达式的 PDF 页数

javascript - 如何将从谷歌应用程序脚本 HTMLService 类获取的模板插入到 .html 文件中?

javascript - 将某种类型的文件添加到我的 Google 云端硬盘

loops - 如何将Google表格中50行的内容保存为txt。包含 Google Apps 脚本的文件