首页 > 解决方案 > 如何从 Google Sheet 下载具有特定边距和分页符的 PDF 文件?

问题描述

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

在此处输入图像描述

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

标签: javascriptpdfgoogle-apps-scriptgoogle-sheetspdf-generation

解决方案


将 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"));
}

不幸的是,我不知道设置分页符的方法,但人们正在使用解决方法


推荐阅读